Prima di ARC, ho avuto un "X potrebbe non rispondere a xxx" avviso, che è un avviso piuttosto innocuo che non impedisce di compilare. Ora, sto cercando di convertire il mio progetto in ARC, e ho un "Nessuna interfaccia visibile per X dichiara il selettore xxx" errore, che impedisce la compilazione.Come ignorare "Nessuna interfaccia @ visibile per X dichiara il selettore"?
So esattamente cosa sto facendo, e perché l'avviso era lì, e posso dirti che il programma è corretto. In precedenza, il compilatore lo compilava senza problemi e non dovrebbe ora impedirne la compilazione.
E 'vero che l'interfaccia di classe di X non dichiara che il selettore, ma X è una classe che gestisce dinamicamente qualsiasi messaggio con qualsiasi selettore inviato ad esso, utilizzando forwardInvocation:
(che è una delle cose belle su Objective-C), quindi la sua interfaccia non può dichiarare tutti i selettori che possono essere chiamati su di esso. E il selettore è dichiarato da qualche parte, non solo su X.
La documentazione dicono: "Per rispondere ai metodi che l'oggetto non si riconosce, è necessario eseguire l'override di methodSignatureForSelector: "L'hai fatto? – rdelmar
Forse questa risposta potrebbe aiutarti. http://stackoverflow.com/a/8002646/1341136 – hanjae
@rdelmar: No, questo è un errore in fase di compilazione. Niente a che vedere con il suo funzionamento in runtime (che funziona bene) – user102008