尝试将对象添加到Array

时间:2014-03-15 19:53:56

标签: objective-c arrays

我有一个定义为:

的类
@interface invItem : NSObject
{
    NSString* rowID;
    NSString* expDate;
    NSString* location;
}

@property(nonatomic, retain)NSString *rowID;
@property(nonatomic, retain)NSString *expDate;
@property(nonatomic, retain)NSString *location;

@end

我正在从Web服务返回的XML(使用XMLParser)读取3个字符串,然后将它们添加到我的invItem对象

例如:

currentItem.rowID = currentNodeContent; etc..

在我阅读的每一行的最后,我需要添加' currentItem'所有3个字符串,我的数组,我正在使用:

[myArray addObject:currentItem];

但是当我在调试器中检查数组时它返回nil,如下所示,我错过了什么?

(lldb) po currentItem.rowID
1889

(lldb) po [[myArray objectAtIndex:0] rowID]
 nil

2 个答案:

答案 0 :(得分:0)

问题似乎是myArray本身是零。您需要在某个时刻实例化一个数组,或者您只是毫不费力地将消息发送到nil。 (最好是NSMutableArray,否则当你向它发送addObject时就会崩溃。)

答案 1 :(得分:0)

好吧,看起来你将分配的对象添加到数组中,否则你会崩溃。它可以通过以下方式轻松测试:

[myArray addObject:nil];

由于您向数组添加了非nil对象,因此有两个可能的原因:

  1. myArray是nil
  2. rowID为nil
  3. 检查为rowID指定值的代码,您也可以使用以下方法:

    currentItem.rowID = (currentNodeContent.length > 0) ? currentNodeContent : @"";
    

    它将检查值并避免将nil指定给rowID。

相关问题