gpt4 book ai didi

xcode - 每当我运行时,由于IBOutletCollection,XCode都会引发Sigabrt错误

转载 作者:行者123 更新时间:2023-12-04 16:52:12 24 4
gpt4 key购买 nike

我正在为iOS 5创建一个应用,但出现以下错误:

Assertion failure in -[UIRuntimeOutletCollectionConnection performConnect], /SourceCache/UIKit_Sim/UIKit-1912.3/UIRuntimeOutletCollectionConnection.m:43


我尝试调试该错误,并且可以看到它的发生,因为我将一个项目连接到IBOutletCollection。

IBOutletCollection的定义如下:

@property (strong) IBOutletCollection(BallButton) NSSet *Balls;




NSSet *Balls;


被定义为实例变量。

每当我没有将Ball连接到界面生成器中的集合时,该应用程序就会正常加载。但是,一旦将任何球添加到集合中,则在ViewController和所有球被实例化之后以及ViewController中的ViewDidLoad之前,我都会收到错误消息。

一切正常,然后我重新放置了一些图层,现在我无法摆脱这个错误。

如果有人可以甚至甚至可以建议为什么这样做,或者只是一个使用IBOutletCollection的iOS 5示例(如果我在设置中做错了,但我认为我没有做过),那么将不胜感激。

谢谢

最佳答案

代替使用IBOutletCollection,您可以获取包含所需集合中所有项目的视图,并使用IBOutlet将其连接。然后使用:

- (NSSet *)getBallsFromView:(UIView *)view
{
NSMutableSet *balls = [[NSMutableSet alloc] init];
for (UIView *subview in [view subviews])
{
if ([subview isKindOfClass:[BallButton class]])
[balls addObject:(BallButton *)subview];
}
}


这将从视图中检索特定类型的所有项目,然后您可以简单地将它们添加到集合中。仅当所有项目直接在您要遍历的视图上时,才会获取所有项目。如果子视图中还包含您想要的项目,则必须递归调用此方法。

关于xcode - 每当我运行时,由于IBOutletCollection,XCode都会引发Sigabrt错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com