尝试使用已注册可重复使用的 nib 时出现间歇性错误。我在两个 ViewControllers 上使用相同的自定义单元格。
2013-09-05 11:04:08.476 xxx[51395:c07] *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“为标识符 (TweetTableViewCellId) 注册的 nib 无效 - nib 必须恰好包含一个顶级对象,该对象必须是 UITableViewCell 实例'
- 我在对象列表中使用带有一个视图的 NIB 文件 - 在顶部,当然 -。它具有 TweetViewCell 类型,它扩展了 UITableViewCell -。
- 我已经将 [b]identifier[/b] 定义为“ TweetTableViewCellId ”
- 我加载了 nib 并在 viewDidLoad 上注册了它(我已经调试并且加载了 nib 对象)
- 我尝试使用相同的 ID 恢复已注册的单元格。
一些代码
// 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
有什么建议吗?