静态变量为零 - 目标C

时间:2013-10-08 11:16:59

标签: ios objective-c arrays static

您好,我刚刚学习了目标C,我正在做一些练习来练习自己。我在这里有两个课程,一个是#34;主要课程"和一个"子类"。我需要的是获得我的主要课程的所有实例"并把它放在一个数组中。我也想在我的"子类"中使用它。下面我举一个小例子。

@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

如果我按照上面的例子进行操作,我会收到一条警告,指出静态数组未被使用,并且从Array获取数据时为nil。我还尝试在" main Class"的实现文件中声明静态数组,但我不能在" Sub Class"中使用数组。请给我一个解决方案。

朋友们,虽然这个问题并不那么重要,但它可以帮助我理解事情。所以请帮助我理解这个概念,我可以完全删除这个问题。谢谢

1 个答案:

答案 0 :(得分:1)

有几个问题:

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

  2. 您显然需要制作NSMutableArray,而不是NSArray

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

  4. 另外,您可能还希望使用MainClassSubClass而不是mainClasssubClass来符合Cocoa naming conventions。更好,使用有意义的名字。