尝试使用NSMutableString访问Mutable数组时访问错误

时间:2012-03-05 10:37:30

标签: objective-c nsmutablestring

我合成了一个叫NSMutableArray的电子邮件,它是对象Person的一部分。电子邮件数组包含指向多个NSMutableString对象的指针。

@property (strong) NSMutableArray *email;
@synthesize email = _email;

声明了字符串(在电子邮件对象的init方法中),如下所示:

NSMutableString *s = [NSMutableString stringWithFormat:@"Blah"];

有了这个,我后来用不同的方法执行[email count]命令时出现了错误的访问错误。我使用自动保留计数ARC。为什么会这样?

编辑:事实证明[email count]的输出是使用%@打印的,这在大多数情况下都不会起作用,见下文。

1 个答案:

答案 0 :(得分:4)

想出来,我想。

明确表示我对Cocoa / Objective C的态度非常明显。我正在打印测试消息如下:

NSLog (@"%@",[[p email] count]);

但是count方法返回一个unsigned long(或NSInteger),并且一旦我将其更改为

NSLog (@"%ul",....

它奏效了。事情可以同时如此简单和艰难: - (

所以,备忘录给我:

如果返回一个数字,请确保您要打印它指向的对象(%@),它可能无效!!