gpt4 book ai didi

ios - 静态变量为零 - Objective C

转载 作者:行者123 更新时间:2023-11-29 03:35:23 24 4
gpt4 key购买 nike

嗨,我刚刚学习了 Objective C,我正在做一些练习来练习自己。我这里有两个类(class),一是“主类”,一是“子类”。我需要的是获取“主类”的所有实例并将其放入数组中。我也想在我的“子类”中使用它。下面我举一个小例子。

@interface mainClass : NSObject
static NSArray *instanceObj;
@end
@implementation mainClass

//Here i used the designated initializer to initialize and add the instance to the Array
@end


@interface subClass:mainClass
@end
@implementation subClass

//Here i want to use the Array to get instances of mainClass.
@end

如果我按照上面的示例执行操作,我会收到一条警告,指出未使用静态数组,并且从数组获取数据时其值为 nil。我还尝试在“主类”的实现文件中声明静态数组,但我无法在“子类”中使用该数组。请给我一个解决方案。

friend 们,这个问题虽然不是那么重要,但也许能帮助我理解一些事情。所以请帮助我理解这个概念,我可能会完全删除这个问题。谢谢

最佳答案

几个问题:

  1. static 移到 @interface 之外,并移到 @implementation 上方的 .m 文件中。

  2. 您显然需要创建 NSMutableArray,而不是 NSArray

  3. 预先警告,通过将对象添加到该数组,会建立对这些对象的强引用,并且在您将它们从数组中删除之前它们不会被释放。

顺便说一句,您可能还想遵守 Cocoa naming conventions ,使用 MainClassSubClass 而不是 mainClasssubClass。最好使用有意义的名称。

关于ios - 静态变量为零 - Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19246281/

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