“无法编译连接:”错误是什么意思?

时间:2012-02-11 00:17:57

标签: objective-c ios xcode compiler-errors storyboard

我从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”的连接导致错误: enter image description here

感谢您提供有关如何调试的任何想法或建议!

编辑: 我删除了连接,并在numberOfComponentsInPickerView:

中添加了一行
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {

    categoryPicker = pickerView;

    return 1;

}

这现在有效!但我想了解为什么连接不起作用以及错误消息的含义。现在这对我来说似乎是一个骗局,因为我在其他地方使用IB连接来获取对象引用。

编辑2: 连接原型单元会生成此错误:非法配置:连接“单元”不能将原型对象作为其目标。不确定这是Xcode 4.5中的新功能。

2 个答案:

答案 0 :(得分:109)

问题在于这是一个原型单元。对它中的某个东西有一个出口是没有意义的,因为它不是一个真正的单元:它是可能是几十个或几百个单元的模型,在这种情况下出口指向哪一个?

答案 1 :(得分:21)

SWIFT 2

我正在创建一个 popover segue ,我遇到了同样的错误。

我所做的是跟随@ matt的回答没有把它放在一个单元格上,这是合乎逻辑的,因为他解释了它!

相反,我把 TableView作为锚点,它运行良好。

希望能帮助将来的人们。