2015-08-31 23 views
1

我使用Quickblox API來創建羣組聊天,這需要用戶ID的要被髮送到使用以下格式的方法:目的-C:NSArray的格式VS NSMutable陣列

NSArray *usersIDs = @[@(55), @(678), @(22)]; 

這個陣列輸出到日誌爲這樣:

Correct Format: (
     55, 
     678, 
     22 
) 

在我的應用程序,我填的用戶ID的數組到一個NSMutableArray,因爲這樣的:

[holderArray addObject:[users valueForKey:@"ID"]] 

其中輸出到日誌中這樣的(這,當我發送的方法,不工作):

My Array: (
     (
     55 
    ), 
     (
     678 
    ), (
     22 
    ), 
) 

是否有人可以解釋我在做什麼毛病holderArray,我怎麼能得到要以正確格式添加的對象?

編輯:

這裏是用戶的NSArray的日誌輸出:

users: (
    " 
    [QBUUser]: 
    ID:55 
    created at:2015-08-27 19:33:24 +0000 
    updated at:2015-08-27 19:33:24 +0000 
    externalUserID:0 
    blobID:0 
    facebookID:(null) 
    twitterID:(null) 
    full name:(null) 
    email:(null) 
    login:3065555555 
    phone:(null) 
    tags:(null) 
    lastRequestAt:2015-08-29 22:49:34 +0000 
    customData:(null) 
    website:(null)" 
) 
+1

那麼它看起來像'類型[用戶valueForKey:@ 「ID」]''是NSArray'。只有你可以確認。 – trojanfoe

+0

你爲什麼使用valueForKey?你不能做一些簡單的事情,比如[holderArray addObject:[users objectAtIndex:0]]; ? –

+0

@ T_77他可能使用KVC或它可能是一本字典。無論哪種方式,'objectAtIndex:'都行不通。 – trojanfoe

回答

3

這沒有什麼錯傳遞一個NSMutableArray是,因爲它是NSArray一個子類,則問題無論[users valueForKey:@"ID"]返回,因爲它看起來像NSArray本身。

從後續評論看來,它看起來像是NSDictionary對象的NSArray,因此users valueForKey:將返回字典中的所有ID。如果這是真的,那麼只需將它們用addObjectsFromArray添加到holderArray

NSArray *idents = [users valueForKey:@"ID"]; 
[holderArray addObjectsFromArray:idents]; 
+0

謝謝!這工作 –

+0

實際上,使用上面的代碼我得到一個錯誤:期望的方法來讀取字典元素找不到對象類型nsarray –

+0

@AdamG是;你最初使用'valueForKey:'是正確的。固定。 – trojanfoe