Objective c 尝试使用NSMutableString访问可变数组时访问错误

Objective c 尝试使用NSMutableString访问可变数组时访问错误,objective-c,nsmutablestring,Objective C,Nsmutablestring,我合成了一个名为email的NSMutableArray,它是objectperson的一部分。电子邮件数组包含指向多个NSMutableString对象的指针 @property (strong) NSMutableArray *email; @synthesize email = _email; 字符串的声明(在电子邮件对象的init方法中)如下所示: NSMutableString *s = [NSMutableString stringWithFormat:@"Blah"]; 这样,

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

@property (strong) NSMutableArray *email;
@synthesize email = _email;
字符串的声明(在电子邮件对象的init方法中)如下所示:

NSMutableString *s = [NSMutableString stringWithFormat:@"Blah"];
这样,当我以后用另一种方法执行
[email count]
命令时,会出现错误的访问错误。我使用自动计数弧。为什么会发生这种情况


编辑:事实证明,
[email count]
的输出是使用%@打印的,这一点很重要,因为它在大多数情况下都不起作用,请参见下文。

我想是解决了这个问题

很明显,我对Cocoa/Objective C是多么的绿色。我打印了一条测试消息,如下所示:

NSMutableString *s = [NSMutableString stringWithFormat:@"Blah"];
NSLog(@“%@,[[p email]count])

但是count方法返回一个无符号long(或NSInteger),一旦我将其更改为

NSLog(@“%ul”,…

它成功了。事情可以是简单的,也可以是困难的:-(

所以,给我的备忘录是:

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