2011-03-21 59 views
0

我似乎无法将对象添加到NSMutableArray。我创建了一个可变数组,向它添加一个对象,然后尝试迭代它,或者获取它的数量,但是我的程序段错误。无法添加到NSMutableArray

@interface myclass : NSObject 
{ 
    NSString* aname; 
} 
@property (retain) NSString* aname; 
@end 

@implementation myclass 
@synthesize aname; 
@end 

int main(int argc, char*argv[]) 
{ 
    myclass* cls = [[myclass alloc] init]; 
    [cls setAname:@"myname"]; 
    NSMutableArray* arr = [[NSMutableArray alloc] init]; 
    NSLog(@"allocated array %@", [arr count]); 
    [arr addObject:cls]; 
    NSLog(@"count %d", [arr count]); 
} 

程序崩溃在第二个NSLog。怎么了?

+0

在@synthesize之后删除@end至少... – 2011-03-21 07:14:10

+0

正在创建数组的函数不是类的一部分。已将其更名为'main'以避免混淆。 – 341008 2011-03-21 07:53:32

回答

1

您正在将[arr count]返回的整数传递给日志格式化程序,但告诉NSLog将其作为NSObject(使用“%@”)处理。尝试使用“%d”代替。

+0

这不是它。使用'%d'不能解决它。已更新问题以使用'%d'。 – 341008 2011-03-21 07:52:23

+0

您在第一次NSLog调用中仍然存在问题。 – Vagrant 2011-03-21 08:21:07

+0

即使有错误的第一个NSLog,您列出的程序适用于我: 2011-03-21 01:24:28.859 tmp [26157:207]分配数组(空) 2011-03-21 01:24: 28.861 tmp [26157:207] count 1 – Vagrant 2011-03-21 08:26:19