Что означает ошибка «Не удалось скомпилировать соединение:»? - PullRequest
38 голосов
/ 11 февраля 2012

Я получаю следующую ошибку из XCode:

Couldn't compile connection: <IBCocoaTouchOutletConnection:0x401538380
<IBProxyObject: 0x40154a260> => categoryPicker => <IBUIPickerView: 0x4016de1e0>>

Я сузил это до одного розетки в раскадровке.Мой код (около 30 представлений с множеством других подключений) компилируется и работает нормально, пока я не добавлю соединение из UIPicker в свойство viewPicker представления.Сам инструмент выбора также работает нормально, я просто не могу перезагрузить его, не установив это соединение:

@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» вызывает ошибку: enter image description here

Спасибо за любые идеи или предложения о том, как его отладить!

ПРАВКА: Я удалил соединение и добавил одну строку в numberOfComponentsInPickerView:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

    categoryPicker = pickerView;

    return 1;

}

Теперь это работает !, но я хотел бы понять, почему соединение не работает и что этосообщение об ошибке значит.Прямо сейчас это кажется мне клочком, поскольку я использую соединения IB везде для получения ссылок на объекты.

РЕДАКТИРОВАТЬ 2: При подключении прототипа ячейки возникает эта ошибка: Недопустимая конфигурация: Соединение «Ячейка» не может иметь объект-прототипкак пункт назначения.Не уверен, что это новое в Xcode 4.5.

Ответы [ 2 ]

109 голосов
/ 11 февраля 2012

Проблема в том, что это прототип клетки. Бессмысленно иметь выход к чему-то в этом, потому что это не настоящая ячейка: это модель для того, что может быть десятками или сотнями ячеек, и на какую из них будет выход в этом случае?

21 голосов
/ 07 ноября 2015

SWIFT 2

Я создавал popover segue и получал ту же ошибку.

Что я сделал, так это следовал за ответом @ matt , не помещая его в ячейку , что логично теперь, когда он это объяснил!

Вместо этого я поставил TableView в качестве привязки , и он работал нормально.

Надеюсь, что это поможет в будущем.

...