2011-05-25 74 views
2

嗨 我有問題的NSData轉換爲NSArray的問題的NSData轉換爲NSArray的

我的代碼是:

NSData *data = [[NSData alloc] initWithBytes:(const void *)buf length:len]; 
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 

任何一個可以幫助我做到這一點。

+7

你會遇到什麼問題? – 2011-05-25 13:37:07

+0

在拋出'NSException'實例後終止調用 編程接收信號:「SIGABRT」。 – Christina 2011-05-25 13:46:28

+0

這是例外 – Christina 2011-05-25 13:47:07

回答

1

我不知道你的字節緩衝區裏面有什麼。此代碼適用於字符字節的簡單緩衝區。

嘗試:

char buf[]="123456"; 
NSData *bufObj=[NSData dataWithBytes:(const void *)buf length:sizeof buf]; 
if(bufObj==nil) 
    NSLog(@"failed to create obj"); 
else { 
    NSMutableArray *marr=[NSMutableArray array]; 
    [marr addObject:bufObj]; 
    NSArray *arr=[NSArray arrayWithObject:bufObj]; 

    NSLog(@"test:\n\tbufObj: %@\n\tmarr: %@\n\tarr: %@",bufObj,marr,arr); 
} 
1

使用+[NSPropertyListSerialization dataWithPropertyList:format:options:error:]將數據轉換,然後檢查結果-isKindOfClass:[NSArray class]

它會工作:)