2010-02-19 52 views
0

什麼是最好的方法來計算一個屬性列表中的條目數量?可可:沒有建築詞典的房產清單的元素數?

我目前搭建起的plist條目(*)的字典,然後使用字典的計數:

NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:myPlistPath]; 
NSDictionary *myPlistDict = (NSDictionary *) [NSPropertyListSerialization 
        propertyListFromData:plistXML 
         mutabilityOption:NSPropertyListMutableContainersAndLeaves 
            format:&format 
         errorDescription:&errorDesc]; 
NSLog(@"There are %d entries in the plist.", [myPlistDict count]); 

這令我不必要的「重」,但我沒能找到一個更有效的解決方案。有任何想法嗎?



(*)使用過時 +propertyListFromData:…類方法靶向10.5,因此。

+4

爲什麼將pList轉換爲XML,然後加載到NSDictionary?您可以直接調用NSDictionary的initWithContentsOfFile: –

回答

1

那麼......如果您轉換爲XML,您可以使用NSXMLNode的childCount方法。該文檔確實表明它比調用[children count]更有效,但是NSXMLNode的創建可能會使其與NSDictionary方法一樣糟糕(甚至更糟糕)。

你有個人簡介嗎?你是否與特別大的plists一起工作?你是否經常要求這個計數?我說:使用NSDictionary,緩存值,如果你經常請求它,繼續前進,除非這是不可接受的緩慢。 (是的,它看起來醜陋的現在,但有更大的事情要擔心。)

+0

感謝您的答案。我不需要經常計算,所以我按照你的建議做了,然後繼續前進......我確實覺得很奇怪,但應該沒有更簡單的方法。 –