我已经定义了IBOutletCollection of UIActivityIndicatorView。
IBOutletCollection(UIActivityIndicatorView) NSArray *ticker;在接口生成器中建立所需的连接后,我运行以下代码。
for (UIActivityIndicatorView *obj in ticker)
{
[obj startAnimating];
}但我在控制台上收到一条消息:
*由于“NSInvalidArgumentException”异常终止应用程序,原因:'-UIActivityIndicatorView countByEnumeratingWithState:objects:count::unrecognized发送到实例0x2c86a0‘
我知道这可能是一个很小的问题,但真的不明白。
谢谢!
发布于 2012-08-01 19:31:17
我不知道什么不适合你。我做了以下工作,效果很好。
在我的.h里
@property (strong, nonatomic)IBOutletCollection(UIActivityIndicatorView) NSArray *activityIndicators;在我的.m中(如果不使用Xcode 4.4)
@synthesize activityIndicators我将7+活动指示器添加到我的StoryBoard中,并将它们连接到我的viewController
在我的viewDidLoad里我要打电话
for (UIActivityIndicatorView *obj in self.activityIndicators){
[obj startAnimating];
}在这个配置中,我工作得很好,没有问题。
根据你收到的错误信息
'NSInvalidArgumentException', reason: '-[UIActivityIndicatorView countByEnumeratingWithState:objects:count:]听起来有点不对劲,检查你的IB,看看你有没有做过奇怪的事情。
发布于 2012-08-01 19:20:27
countByEnumeratingWithState:objects:count:方法应该作为NSFastEnumeration协议的一部分发送到数组对象。有时,如果存在内存问题,消息可能会被发送到错误的对象。反复检查以确保ticker被正确保留(使用self.ticker也可能是最佳实践)。
https://stackoverflow.com/questions/11765970
复制相似问题