尝试定义rightBarButtonItems时应用程序崩溃

时间:2013-08-27 08:01:18

标签: iphone ios objective-c

我使用这种方法来定义navigationItem rightBarButtonItems:

UIImageView * imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"YouTube-icon"]];
UIBarButtonItem *barIcon = [[UIBarButtonItem alloc]initWithCustomView:imageView];

if ([videoArr count] > 0) {
    self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:barIcon,self.aToZButton, nil];
} else {
    self.navigationItem.rightBarButtonItem = barIcon;
}

[imageView release];
[barIcon release];

当调试开启时:

self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:barIcon,self.aToZButton, nil];

应用程序崩溃:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType isSystemItem]: unrecognized selector sent to instance 0x1e5eecd0'

修改

我注意到只有当我使用rightBarButtonItem然后使用rightBarButtonItem时才会发生崩溃。 如果我只使用rightBarButtonItems它不会崩溃

1 个答案:

答案 0 :(得分:1)

看起来就像某个地方你过早发布对象(内存管理问题)。NSCFType是iOS SDK中的一个内部未记录的类,它背后的事实显示在这里意味着内存空间你的课程在完成这个过程之前就被释放了。