Ответ 1
Проблема в том, что это прототип ячейки. Бессмысленно иметь выход к чему-то в нем, потому что это не настоящая ячейка: это модель для того, что может быть десятками или сотнями ячеек, и в каком случае точка выхода должна быть в этом случае?
Я получаю следующую ошибку от Xcode:
Couldn't compile connection: <IBCocoaTouchOutletConnection:0x401538380
<IBProxyObject: 0x40154a260> => categoryPicker => <IBUIPickerView: 0x4016de1e0>>
Я сузил это до единственного выходного соединения в раскадровке. Мой код (около 30 просмотров с большим количеством других подключений) компилируется и работает нормально, пока я не добавлю соединение от UIPicker к свойству categoryPicker представления. Сам сборщик также отлично работает, я просто не могу перезагрузить его, не получив это соединение:
@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
UIPickerView находится в UITableViewCell. Здесь изображение раскадровки, соединение от "categoryPicker" к "FiltersTableViewController" вызывает ошибку:
Спасибо за любые идеи или предложения по их отладке!
EDIT: Я удалил соединение и добавил одну строку в numberOfComponentsInPickerView:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
categoryPicker = pickerView;
return 1;
}
Теперь это работает!, но я хотел бы понять, почему соединение не работает и что такое сообщение об ошибке. Прямо сейчас это похоже на kludge для меня, так как я использую IB-соединения везде, чтобы получить ссылки на объекты.
ИЗМЕНИТЬ 2: Подключение ячейки прототипа генерирует эту ошибку: Незаконная конфигурация: соединение "Ячейка" не может иметь объект-прототип в качестве адресата. Не уверен, что это новое в Xcode 4.5.
Проблема в том, что это прототип ячейки. Бессмысленно иметь выход к чему-то в нем, потому что это не настоящая ячейка: это модель для того, что может быть десятками или сотнями ячеек, и в каком случае точка выхода должна быть в этом случае?
SWIFT 2
Я создавал popper segue, и я получал ту же ошибку.
То, что я сделал, это следовать @matt ответам не помещать его в ячейку, что логично теперь, когда он объяснил это!
Вместо этого я помещал TableView в качестве привязки, и он работал нормально.
Надеюсь, что это поможет в будущем.