【问题标题】:Why is this NULL?为什么这是 NULL?
【发布时间】:2011-06-16 18:03:01
【问题描述】:

谁能告诉我为什么这是 NULL ?

所以 Array1 是 NSMutable,并且在索引 0 处有一个 NSString 对象“UserName”;

NSLog (@"Contents of array1 %@", [array1 objectAtIndex:0]); //prints UserName

现在,我这样做......

array2 属于另一个类。我引用该类,导入 .h 文件,然后添加属性并合成它。

[object2.array2  addObject: array1]; //array2 is NSMutable properly initialized in it's respective class in the init method

NSLog (@"Contents of array2 %@", [object2.array2 objectAtIndex:0]); //prints (null)

tempArray = [[NSMutableArray alloc] init];
tempArray = [object2.array2 objectAtIndex:0];
NSLog (@"%@", [tempArray objectAtIndex:0]); // Prints (null) // Should be UserName

添加更多信息:

object2 是另一个类(NSObject 的子类)的对象,object2 包含 array2,因为它是 property

object2 为零。为什么 ?怎么样??

【问题讨论】:

  • array2Array2?我感觉你没有发布你的真实代码......
  • 你能显示array2的初始化吗?另外,这可能是一个错字,但在一个地方你写的是array2,另一个地方是Array2
  • 首先,您可能想做 [array2 addAllObjects: array1] 或类似的操作。您正在做的是将 NSMutableArray 添加到 array1,而不是 UserData 字符串。
  • 你初始化array2了吗?
  • @Legolas 你不应该释放它。

标签: iphone objective-c nsarray nslog


【解决方案1】:
NSLog (@"Contents of array2 %@", [object2.array2 objectAtIndex:0]); //prints NULL

如果“打印 NULL”,则有以下四个原因之一:

  • object2 为零
  • object2.array2 返回零
  • 索引 0 处的对象是字符串“NULL”
  • 索引0处的对象description方法返回字符串“NULL”

这是什么?


对象 2 为零。我想知道为什么。

很可能是因为您一开始没有初始化它。显示您的初始化代码并删除日志语句或断点并确保它实际上正在执行。

【讨论】:

  • 先生。 @bbum:你能再检查一下这个问题吗?我已将 NULL 更改为 (null)。我用大写字母来强调那是空的。 (显然失败了)
  • @Legolas:如果打印的是(null),那么bbum 识别的四个对象之一是nil
  • 我也这么认为。你能告诉我为什么它可能是 nil 吗?
  • @Legolas:最简单的做法是在您现在记录完整表达式的同一点分别记录所有这四个对象。找出问题所在,然后追溯。
猜你喜欢
  • 2022-01-22
  • 2013-05-09
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 2015-01-24
  • 1970-01-01
相关资源
最近更新 更多