Sto ottenendo il seguente errore da Xcode:Che cosa significa l'errore "Impossibile compilare la connessione:"?
Couldn't compile connection: <IBCocoaTouchOutletConnection:0x401538380
<IBProxyObject: 0x40154a260> => categoryPicker => <IBUIPickerView: 0x4016de1e0>>
Ho ridotto questo fino a una singola connessione di uscita in storyboard. Il mio codice (circa 30 visualizzazioni con molte altre connessioni) viene compilato e viene eseguito correttamente finché non aggiungo una connessione da un UIPicker alla proprietà categoryPicker della vista. Il selettore per sé funziona anche bene, non riesco proprio a ricaricarlo senza ottenere questa connessione al lavoro:
@interface FiltersTableViewController : UITableViewController <UIPickerViewDataSource, UIPickerViewDelegate> {
NSFetchedResultsController *fetchedResultsController;
FilterTableViewController *filterView;
AppDelegate *appDelegate;
NSManagedObjectContext *managedObjectContext;
}
@property (nonatomic, strong) FilterTableViewController *filterView;
@property (nonatomic, strong) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, weak) IBOutlet UIPickerView *categoryPicker;
- (void)configureCell:(FilterTableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;
- (void)performFetch;
@end
L'UIPickerView è in un'UITableViewCell. Ecco un'immagine dello storyboard, il collegamento da "categoryPicker" a "FiltersTableViewController" causa l'errore:
Grazie per tutte le idee o suggerimenti su come eseguire il debug!
EDIT: ho rimosso il collegamento e ha aggiunto una linea numberOfComponentsInPickerView:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
categoryPicker = pickerView;
return 1;
}
funziona questo ora !, ma mi piacerebbe capire il motivo per cui la connessione non funziona e cosa significa questo messaggio di errore. In questo momento mi sembra una trappola per me poiché utilizzo le connessioni IB ovunque per ottenere riferimenti agli oggetti.
MODIFICA 2: Il collegamento di una cella prototipo genera questo errore: Configurazione non valida: Connessione "Cella" non può avere un oggetto prototipo come destinazione. Non sono sicuro se questo è nuovo in Xcode 4.5.
Sembra che il problema sia, categoryPicker è "debole" e FilterTableViewController è "forte". Prova a rendere potente anche categoryPicker e controlla se funziona – doNotCheckMyBlog
Grazie. Ho appena provato, ma non cambia nulla. (Ho l'impressione che IBOutlets dovrebbe essere debole ... Lo capisco da qui: http://www.raywenderlich.com/5773/beginning-arc-in-ios-5-tutorial-part-2). – Symmetric
Sì, questo è tecnicamente corretto, scusate il mio male! Come ho appena letto nella documentazione di Apple! – doNotCheckMyBlog