2014-08-31 48 views
0

今天早上我似乎正在努力與這一個。我有一個充滿數據的NSArray。到目前爲止很簡單。最終,我需要從陣列中檢索一個或多個項目以簡單顯示在設備上。下面NSArray檢索單個項目

NSArray *myViews = viewsArray; 
NSString *activeView = [myViews valueForKey:@"Active"]; 

我知道數組是正確的,但由於某種原因不爲人知的自己,我能得到的項目從數組中的一個,並設置它,所以我可以別的地方使用它。也許是範圍問題。

我的數組看起來像這樣;

[0] 
    NSObject 
    appViewName = (NSString *) @"AcmeAPP" 
    appActive = (NSString *) @"True" 

我也嘗試循環數組,但似乎也沒有工作。顯然我錯過了一些東西。

+0

[objectForKey和valueForKey之間的區別?](http://stackoverflow.com/questions/1062183/difference-between-objectforkey-and-valueforkey) – Rambatino 2014-09-01 09:31:31

回答

1

這裏的問題在於你試圖得到一個「valueForKey」,這意味着你錯誤地聲明瞭你的「數組」實際上需要是一個「NSDictionary」對象。

NSArray沒有密鑰。 NSDictionary的確如此。

+2

可以使用valueForKey和Array。 http://iosdevtips.co/post/80598241763/valueforkey-nsarray – Matz 2014-08-31 20:22:07

+0

謝謝邁克爾,它已經有一段時間了,因爲我碰到了目標c。顯然。我已經在使用上面的UITable視圖中獲得了上述結果。但你建議用戶使用NSDictionary而不是NSArray? – Jeremy 2014-08-31 20:29:21

+0

@Matz非常有趣,但怪異的怪異行爲。 – keeshux 2014-09-01 01:01:46

1

NSArrays沒有關鍵字,只是值,存儲在數字索引。通過調用objectAtIndex並提供一個介於0和count - 1之間的數字來檢索項目。也許你會更好使用NSDictionary?

0

你的數組令人難以置信的混淆ing,但是你正在尋找一個'Active'鍵,沒有的鍵。嘗試'appActive':但我真的不知道你在努力達到什麼樣的目標。

如果你是,並糾正我,如果我錯了,一個完整的新手在編程,也許你不應該使用KVC並學習如何使用NSArrays和NSDictionaries。