in Obj-C uno switch può solo valutare i numeri. Mi piacerebbe essere in grado di usarlo per confrontare classi di oggetti, qualcosa di simile, per esempio:in Obj-C, come potrei fare un'istruzione switch che valuterà le classi, anziché solo i numeri?
switch (currentSubViewController.class)
{
case UITableViewController.class :
<do stuff>
break;
case UICollectionViewController.class :
<do stuff>
break;
}
Esiste un modo per raggiungere questo obiettivo? Mi piacerebbe davvero essere in grado di utilizzare uno switch perché lo rende così facile da leggere per casi diversi e posso aggiungere più casi in qualsiasi momento. Qualche idea?
Supponendo che tu sia su iPhone, stai avendo un viewController separato per ciascuna delle sottoview? –
sì, un controller di visualizzazione per ciascuno. Davvero, voglio vedere quale controller di visualizzazione è attualmente presentato. Potrei facilmente tenerne traccia usando semplicemente un valore numerico (come globale, o qualsiasi altra cosa), come int currentPresentedController = qualunque cosa, e quindi basta impostare il valore manualmente ogni volta che cambio controller, ma non mi fido molto di quella soluzione molto, come dimenticare di impostare il valore potrebbe rovinare tutto. Inoltre, il valore potrebbe in qualche modo sfuggire alla sincronizzazione con il controller attuale presentato. Più affidabile, penso, per testare direttamente la classe. – TraxusIV
Per chiarire, la motivazione originale alla base di questo era quella di essere in grado di scorrere una serie di controller di visualizzazione presentati quando un pulsante 'ciclo' viene premuto dall'utente. Se il controllore di classe A è attualmente presentato, passa a B. Se viene presentato B, passa a C, ecc. – TraxusIV