Какао: количество элементов списка свойств без построения словаря? - PullRequest
0 голосов
/ 19 февраля 2010

Как лучше всего подсчитать количество записей в списке свойств?

В настоящее время я строю словарь из записей 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]);

Это кажется мне излишне "тяжелым", но я не смог найти более эффективного решения. Есть идеи?


<ч /> (*) таргетинг на 10.5 и, следовательно, использование устаревшего метода класса +propertyListFromData:….

1 Ответ

1 голос
/ 07 марта 2010

Хорошо ... если вы все равно конвертируете в XML, вы можете использовать метод childCount NSXMLNode.Документация предполагает, что он более эффективен, чем вызов [children count], но создание NSXMLNode может сделать его таким же плохим (или даже хуже) методом NSDictionary.

Вы профилировали?Вы работаете с особенно большими списками?Вы часто запрашиваете этот счет?Я говорю: используйте NSDictionary, кэшируйте значение, если вы часто его запрашиваете, и двигайтесь дальше, если это не является недопустимо медленным.(Да, на данный момент выглядит безобразно, но есть и повод для беспокойства.)

...