我从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”的连接导致错误:
感谢您提供有关如何调试的任何想法或建议!
编辑: 我删除了连接,并在numberOfComponentsInPickerView:
中添加了一行- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
categoryPicker = pickerView;
return 1;
}
这现在有效!但我想了解为什么连接不起作用以及错误消息的含义。现在这对我来说似乎是一个骗局,因为我在其他地方使用IB连接来获取对象引用。
编辑2: 连接原型单元会生成此错误:非法配置:连接“单元”不能将原型对象作为其目标。不确定这是Xcode 4.5中的新功能。
答案 0 :(得分:109)
问题在于这是一个原型单元。对它中的某个东西有一个出口是没有意义的,因为它不是一个真正的单元:它是可能是几十个或几百个单元的模型,在这种情况下出口指向哪一个?
答案 1 :(得分:21)
SWIFT 2
我正在创建一个 popover segue ,我遇到了同样的错误。
我所做的是跟随@ matt的回答没有把它放在一个单元格上,这是合乎逻辑的,因为他解释了它!
相反,我把 TableView作为锚点,它运行良好。
希望能帮助将来的人们。