Массив стилей C в Objective-C - PullRequest
       8

Массив стилей C в Objective-C

1 голос
/ 23 декабря 2011

Со всеми полезными вещами, которые вы получаете от NSArray и NSMutableArray, зачем вам когда-либо использовать массив "C Style" с объектами Objective-C?

NSString *array[] = {@"dog", @"cat", @"boy"};

Ответы [ 2 ]

5 голосов
/ 23 декабря 2011

Для коротких фиксированных массивов доступность красивого компактного синтаксиса инициализации (как вы продемонстрировали) может быть хорошей.В некоторых случаях массив стиля C также может обеспечивать выигрыш в производительности по сравнению с использованием NSArray.Еще одна вещь, которая приходит на ум, - это то, что NSArray не предлагает никакой встроенной поддержки многомерных массивов, в то время как многомерные массивы C просты.

И, конечно, есть тот факт, что вы можете хранить только объекты в NSArray, а не типы C-примитивов, но вы спрашивали об использовании массивов C с объектами Objective-C.

1 голос
/ 23 декабря 2011

Все полезные вещи приходят по цене.

Вы когда-нибудь пытались сделать NSArray из ints?Ты не можешьВы ДОЛЖНЫ использовать NSNumber.

Почему?Потому что NSArray не знает, что делать с вещами, которые он не знает, как управлять памятью ... и единственные вещи, которые соответствуют его требованиям управления памятью, это вещи, основанные на NSObject.

Это только один пример, но есть множество других.

Суть в том, что редко бывает когда-либо один "лучший" ответ на что-либо.NSArray не является исключением.

...