我在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