0

我已经定义了 UIActivityIndi​​catorView 的 IBOutletCollection。

IBOutletCollection(UIActivityIndicatorView) NSArray *ticker;

在 Interface builder 中建立所需的连接后,我运行以下代码。

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

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

*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIActivityIndi​​catorView countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x2c86a0”

我知道这可能是一个非常小的问题,但真的没有得到它。

谢谢!

4

2 回答 2

1

我不知道它对你不起作用。我已经完成了以下操作,并且效果很好。

在我的.h

@property (strong, nonatomic)IBOutletCollection(UIActivityIndicatorView) NSArray *activityIndicators;

在我的 .m 中(如果不使用 Xcode 4.4)

@synthesize activityIndicators

我在 StoryBoard 中添加了 7 多个活动指示器并将它们连接到我的 viewController

在我看来DidLoad 我在打电话

for (UIActivityIndicatorView *obj in self.activityIndicators){
        [obj startAnimating];
    }

在此配置中对我来说工作正常,没有问题。

根据您收到的错误消息

'NSInvalidArgumentException', reason: '-[UIActivityIndicatorView countByEnumeratingWithState:objects:count:]

听起来有些不对劲,请检查您的 IB 以确保您没有做任何奇怪的事情。

于 2012-08-01T19:31:17.217 回答
0

该方法countByEnumeratingWithState:objects:count:应该作为NSFastEnumeration协议的一部分发送到数组对象。如果存在内存问题,有时消息可能会发送到错误的对象。仔细检查以确保ticker正确保留(并且使用 也可能是最佳实践self.ticker)。

于 2012-08-01T19:20:27.087 回答