管理多个UIActivityIndi​​catorView

时间:2012-08-01 19:14:39

标签: iphone objective-c ios cocoa-touch

我定义了UIActivityIndi​​catorView的IBOutletCollection。

IBOutletCollection(UIActivityIndicatorView) NSArray *ticker;

在“接口”构建器中建立所需的连接后,运行以下代码。

for (UIActivityIndicatorView *obj in ticker)
 {
            [obj startAnimating];
 }

但是我在控制台上收到了这条消息:

* 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [UIActivityIndi​​catorView countByEnumeratingWithState:objects:count:]:无法识别的选择器发送到实例0x2c86a0'

我知道它可能是一个非常小的问题,但实际上并没有得到它。

谢谢!

2 个答案:

答案 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也是最佳做法)。