计算属性列表中条目数量的最佳方法是什么?
我当前从 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:...
类方法。
最佳答案
好吧...如果您无论如何都要转换为 XML,则可以使用 NSXMLNode 的 childCount
方法。文档确实表明它比调用 [children count] 更有效,但 NSXMLNode 的创建可能会使这与 NSDictionary 方法一样糟糕(甚至更糟)。
你有个人资料吗?您正在处理特别大的 plist 吗?您是否经常请求此计数?我说:使用 NSDictionary,如果您经常请求它,则缓存该值,然后继续,除非速度慢得令人无法接受。 (是的,现在看起来很难看,但还有更大的事情需要担心。)
关于Cocoa:不构建字典的属性列表的元素计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299032/