2011-03-21 96 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