我在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中的新功能。
似乎问题是,categoryPicker是“弱”,FilterTableViewController是“强”。尝试使categoryPicker强壮,并检查它是否有效 – doNotCheckMyBlog 2012-02-11 00:23:16
谢谢。刚试过,但它没有改变任何东西。 (我的印象是IBOutlets应该很弱......我从这里得到:http://www.raywenderlich.com/5773/beginning-arc-in-ios-5-tutorial-part-2)。 – Symmetric 2012-02-11 00:32:51
是的,这在技术上是正确的,对不起我的坏!正如我刚刚在Apple文档中读到的那样! – doNotCheckMyBlog 2012-02-11 00:33:52