尝试使用已注册重用的nib时出现了间歇性错误。我在两个ViewControllers上使用相同的自定义单元格。
2013-09-05 11:04:08.476 xxx [51395:c07] ***由于终止应用程序 未捕获的异常'NSInternalInconsistencyException',原因: '无效的nib注册标识符(TweetTableViewCellId) - nib 必须包含一个必须是a的顶级对象 UITableViewCell实例'
// First Controller to use custom Cell
@implementation TweetsViewController
- (void) viewDidLoad
{
...
UINib *nib = [UINib nibWithNibName:kTweetTableViewCellNibName bundle:nil];
[self.tweetsTableView registerNib:nib forCellReuseIdentifier:@"TweetTableViewCellId"];
..
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TweetTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kTweetTableViewCellId forIndexPath:indexPath];
...
}
@end
// second Controller to use custom Cell
@implementation OfflineEpisodeModalViewController
- (void) viewDidLoad
{
UINib *nib = [UINib nibWithNibName:kTweetTableViewCellNibName bundle:nil];
[self.tweetSearchTableView registerNib:nib forCellReuseIdentifier:kTweetTableViewCellId];
}
...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TweetTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TweetTableViewCellId" forIndexPath:indexPath];
}
@end
任何建议?
答案 0 :(得分:8)
我的标签不在左侧XIB文件元素列表中的“内容视图”下。
我删除了那个标签并且有效。
答案 1 :(得分:5)
分辨
很简单,但无论如何,作为一种新知识是有效的:如果你声明一个同名的xib文件(我的错误),那么将加载的文件是无法保证的。
我删除了"忘记了" xib文件和工作!
答案 2 :(得分:0)
您可能有两个视图指向.xib中的同一个类。请仔细检查您的接口文件
答案 3 :(得分:0)
我遇到了同样的问题。仅通过代码在单元格上添加手势识别器。 这个对我有用。我认为这是 UIKit 的错误。