2012-02-11 56 views
38

我在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中的新功能。

+0

似乎问题是,categoryPicker是“弱”,FilterTableViewController是“强”。尝试使categoryPicker强壮,并检查它是否有效 – doNotCheckMyBlog 2012-02-11 00:23:16

+1

谢谢。刚试过,但它没有改变任何东西。 (我的印象是IBOutlets应该很弱......我从这里得到:http://www.raywenderlich.com/5773/beginning-arc-in-ios-5-tutorial-part-2)。 – Symmetric 2012-02-11 00:32:51

+1

是的,这在技术上是正确的,对不起我的坏!正如我刚刚在Apple文档中读到的那样! – doNotCheckMyBlog 2012-02-11 00:33:52

回答

107

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

+2

谢谢!这是有道理的,其他地方我使用这种东西的连接使用静态单元格。 – Symmetric 2012-02-11 01:25:09

+0

亚光,谢谢你的回答。我现在卡住了。我如何解决像标签按钮等这些对象没有插座? – carbonr 2012-02-28 11:23:52

+7

使用标签并调用'viewWithTag:'或UITableViewCell的子类,以便每个_cell_都有一个指向其_own_按钮的插座。 – matt 2012-02-28 14:11:53

19

SWIFT 2

我创建一个酥料饼赛格瑞和我得到了同样的错误。

我所做的只是按照@ matt的回答而不是将它放在单元格上,这是合乎逻辑的,现在他解释了它!

相反,我把TableView作为主角,它工作正常。

希望可以帮助那些未来。

+3

感谢您的加入,我在swift 2上遇到了这个问题,我不知道为什么 – darkndream 2015-12-02 20:49:44

+2

很高兴帮助! @darkndream – lukaivicev 2015-12-03 07:35:25

+0

@lukesIvi所以你已经从代码实现它? – 2017-01-02 14:22:50

相关问题