簡體   English   中英

計算.plist詞典項目(iOS SDK)

[英]count .plist dictionary items (iOS SDK)

這就是plist原始的樣子:

{
    authorLastName = Doe;
    authorFirstName = Jane;
    imageFilePath = "NoImage.png";
    title = "Account Test 1";
    year = 2009;
},
{
    authorLastName = Doe;
    authorFirstName = John;
    imageFilePath = "NoImage.png";
    title = "Account Test 2";
    year = 2009;
},

我想計算一個plist的總數,並顯示為:“ 4個帳戶”。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                     NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *myPlistPath = [documentsDirectory
                         stringByAppendingPathComponent:@"Accounts.plist"]; 
NSDictionary *plistDict = [[NSDictionary alloc] initWithContentsOfFile:myPlistPath]; 

NSArray *array = [[plistDict objectForKey:0]
                      sortedArrayUsingSelector:@selector(compare:)]; 

return([NSString stringWithFormat:@"%d Accounts", [array count]]);

但是,結果返回0。我希望它返回字典中所有項的數量。

您的return語句中繼的是字典第一個元素中的項目數,而不是字典本身的項目數。 相反,我認為您想要的是這樣的:

return [NSString stringWithFormat:@"%d Accounts", [plistDict count]];

[plistDict count]呢? 由於您將0用作字典的鍵,因此您將無法獲得任何東西,因為您不能使用nil作為鍵或值。

這似乎是一個舊的OpenStep屬性列表,該列表以只讀格式受支持。

您的代碼看起來還不錯,只不過NSDictionary僅將對象用作鍵,因此“ [plistDict objectForKey:0] ”不會做您期望的事情。 如果您知道屬性列表的頂級是數組,則將其分配給NSArray而不是NSDictionary 如果它實際上是字典,請為鍵使用字符串值,而不是0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM