我定义了UIActivityIndicatorView的IBOutletCollection。
IBOutletCollection(UIActivityIndicatorView) NSArray *ticker;
在“接口”构建器中建立所需的连接后,运行以下代码。
for (UIActivityIndicatorView *obj in ticker)
{
[obj startAnimating];
}
但是我在控制台上收到了这条消息:
* 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [UIActivityIndicatorView countByEnumeratingWithState:objects:count:]:无法识别的选择器发送到实例0x2c86a0'
我知道它可能是一个非常小的问题,但实际上并没有得到它。
谢谢!
答案 0 :(得分:1)
我不知道它对你有用。我做了以下工作并且工作正常。
在我的.h
@property (strong, nonatomic)IBOutletCollection(UIActivityIndicatorView) NSArray *activityIndicators;
在我的.m中(如果不使用Xcode 4.4)
@synthesize activityIndicators
我在StoryBoard中添加了7个以上的活动指标,并将它们连接到我的viewController
在我的viewDidLoad中我正在调用
for (UIActivityIndicatorView *obj in self.activityIndicators){
[obj startAnimating];
}
在这个配置中对我来说没问题没问题。
根据您收到的错误消息
'NSInvalidArgumentException', reason: '-[UIActivityIndicatorView countByEnumeratingWithState:objects:count:]
听起来有点不对劲,请检查你的IB,你没有做过奇怪的事情。
答案 1 :(得分:0)
方法countByEnumeratingWithState:objects:count:
应该作为NSFastEnumeration
协议的一部分发送到数组对象。如果存在内存问题,有时可能会将消息发送到错误的对象。仔细检查以确保ticker
被正确保留(使用self.ticker
也是最佳做法)。