NSDictionary или NSObject с NSStrings в качестве свойств, что лучше? - PullRequest
2 голосов
/ 03 апреля 2009

Какой лучший подход между использованием NSDictionary и NSObject с NSStrings в качестве свойств с точки зрения более высокой производительности и эффективного управления памятью, если код написан для приложения iPhone?

например. Если приложение имеет дело с анализом XML-файла, который выглядит следующим образом:

< ?xml version="1.0" encoding="utf-8" ?>

<Sync status="1" syncdate="03/04/2009 11:25:34 AM">

< FirstName>AAA< / FirstName>

< MiddleName>BBB< / MiddleName>

< LastName>ZZZ< / LastName>

< Age>28< /Age>

< Gender>Male< /Gender>

< /Sync>

тогда, при сохранении проанализированных значений, какой подход является более эффективным и правильным, если размер файла XML может быть немного больше? Сохранение проанализированных значений в 'NSDictionary' для соответствующих 'ключей' (например, Key=FirstName Value=AAA) эффективно и правильно по сравнению с сохранением тех же самых проанализированных данных в переменных NSString (т.е. имеющих NSString свойства всех заинтересованных узлов для хранения соответствующих значений. Например, NSString *firstName будет хранить "AAA") подкласса NSObject? Я ищу более быструю производительность, а также эффективность памяти.

Ответы [ 3 ]

1 голос
/ 06 апреля 2009

с точки зрения более высокой производительности и эффективного управления памятью

Ответ, вероятно, сводится к вашему приложению - сколько из этих объектов у вас будет, как вы получите к ним доступ - они написаны больше, чем прочитано и т. Д.

Я бы дал вам общий совет - сначала запустите его, а затем оптимизируйте по скорости и размеру, если вам это нужно. Не оптимизируйте что-либо до того, как это будет написано.

1 голос
/ 06 апреля 2009

С точки зрения производительности, нет ничего лучше, чем на самом деле выполнить тест. Люди уже были удивлены NSArray, который выглядит более сложным, чем ожидалось, просто для оптимизации производительности.

Другими словами, я бы сказал, что NSDictionary более гибкий, чем пользовательский NSObject, если в будущих версиях вашего XML-файла будут добавлены новые свойства. В couterpart я бы также сказал, что пользовательский NSObject с явно названными свойствами более удобочитаем, и, следовательно, более удобен в обслуживании, чем NSDictionary.

0 голосов
/ 03 апреля 2009

Неверный ответ: Вы также можете использовать NSArray с кодированием значения ключа, но я не знаю о производительности по сравнению с NSObject / NSDictionary.

Но я почти уверен, что использование NSObject будет самым быстрым, так как нет никаких накладных расходов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...