iPhone 应用中的 NSMutableArray 添加 addObject 方法无效

5

这个话题已经被讨论过几次,但是没有一个人能解决我的问题。基本上我试图将自定义对象添加到NSMutableArray中,但似乎没有添加成功。我没有收到任何错误信息,但是我收到了一个警告,说我的数组是一个“未使用的变量”,所以看起来它没有被使用。请参见下面的代码。感谢任何帮助!

这是在应用程序委托中的初始化(运行时显示此数组未被使用):

NSMutableArray *organArray = [[NSMutableArray alloc] init];

这是我的对象类organ.m(我正在导入应用程序委托、根视图控制器和organ.h文件)

Organ *organObj = [[Organ alloc] initWithPrimaryKey:primaryKey];
organObj.organName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(selectstmt,1)];
organObj.isDirty = NO;

[appDelegate.organArray addObject: organObj];

[organObj release];

我知道organObj.organName从我的sqlite数据库中获取了正确的值,因为我可以将它们输出到控制台。但它们似乎没有被添加到数组中,而且它显示数组未被使用,这意味着出现了问题。
提前致谢。
1个回答

17

仅供参考,如果你想让organArray成为你的应用代理的成员变量,那么在使用"NSMutableArray"前缀时你创建了一个新的organArray,所以如果我理解你的代码,将你的应用代理更改为:

organArray = [[NSMutableArray alloc] init];

改为:

NSMutableArray *organArray = [[NSMutableArray alloc] init];

1
谢谢!这个方法可行,我可以看到对象被添加到了数组中。但是我还有一个问题,就是我无法从RootViewController中访问该数组。在我的numberOfRowsInSection方法中简单地返回[appDelegate.organArray count]会返回0。这与我在organ.m类中创建appDelegate对象的方式有关吗?在我的RootViewController.m文件中,我已经包含了organ.h和我的delegate头文件。再次感谢! - Mark Cicero
1
没关系,伙计。我在我的RootViewController的viewDidLoad方法中添加了以下行代码,问题得到了解决:appDelegate = (RadiologyAppAppDelegate *)[[UIApplication sharedApplication] delegate];再次感谢! - Mark Cicero
@cicero19,抱歉我没有看到你的问题,因为我只偶尔访问这个网站。我很高兴你已经解决了它! - Dave B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接