Использовать синтаксис "[]" для доступа к контейнерам в XCode 4.4, кажется, не работает

Кто-нибудь пробовал новый синтаксис Sugar, представленный в Xcode 4.4 (iOS 5.1), например, автоматические вызовы @synthesize или Literal Syntax for NSArray? Они довольно удобны.

Но я не могу сделать это правильно для этого, "используйте '[]' синтаксис для доступа". Я попытался следовать, и они не работали. Что я сделал не так? Благодарю.

NSArray *tmp = @[@"hello",@"world"];  //This one works fine
NSString *i = tmp[0]; // or tmp[@0];  this one does not work.

1 ответ

Решение

Вы используете две разные функции там. Ваша первая строка (tmp = @[@"hello",@"world"]) являются литералами. Это должно работать в Xcode 4.4.

Вторая строка (i = tmp[0]) нуждается в поддержке во время выполнения (есть несколько дополнительных методов, необходимых для его работы) и поэтому не будет работать в iOS 5 и ниже. Смотрите этот ответ для более подробной информации.

Другие вопросы по тегам