开发者

Cocoa: Element count of property list without building dictionary?

开发者 https://www.devze.com 2022-12-20 14:00 出处:网络
What is the best way to count the number of entries in a 开发者_运维知识库property list? I currently build a dictionary from the plist entries (*) and then use the dictionary\'s count:

What is the best way to count the number of entries in a 开发者_运维知识库property list?

I currently build a dictionary from the plist entries (*) and then use the dictionary's count:

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]);

This strikes me as unnecessarily "heavy", but I was not able to find a more efficient solution. Any ideas?


(*) targeting 10.5 and therefore using the deprecated +propertyListFromData:… class method.


Well... if you're converting to XML anyway, you could use NSXMLNode's childCount method. The documentation does suggest that it's more efficient than calling [children count], but the creation of the NSXMLNode might make this just as bad (or even worse than) the NSDictionary method.

Have you profiled? Are you working with particularly large plists? Are you requesting this count often? I say: use NSDictionary, cache the value if you request it often, and move on unless this is unacceptably slow. (Yeah, it looks ugly right now, but there are bigger things to worry about.)

0

精彩评论

暂无评论...
验证码 换一张
取 消