Комментарии 41
Обзор на аглицком.
На мой взгляд вы пропустили не менее приятную вещь: доступ к объектам массива/словаря по []:
И самое приятное в самом Xcode — это «умный» автокомплит, который предлагает сначала наиболее используемые слова, а не NSStream вместо NSString =)
На мой взгляд вы пропустили не менее приятную вещь: доступ к объектам массива/словаря по []:
arr[0]
arr[5]
dict[@"Fuu"]
// и т.п.
И самое приятное в самом Xcode — это «умный» автокомплит, который предлагает сначала наиболее используемые слова, а не NSStream вместо NSString =)
О! Спасибо! Действительно пропустил. Более того, я это в материалах при просмотре пропустил. И да, про «умный» автокомплит, согласен, поправлю.
Это в какой версии xCode? мой все еще NSStream предлагает
Единственное, что этот умный автокомплит пока подтормаживает ощутимо по сравнению с 4.3. Надеюсь в будущем «ускорят».
Кстати, такой способ доступа к элементам (через квадратные скобки) можно использовать и для своих классов.
Для этого нужно реализовать методы -objectAtIndexedSubscript: и -setObject:AtIndexedSubscript: для числовых индексов, -objectForKeyedSubscript: и -setObject:forKeyedSubscript: — для индексов-объектов (см. лекцию Modern Objective-C, 28 мин). Поддержка этого, опять таки, на уровне компилятора, т. е. это должно работать и для старых версий ОС.
Для этого нужно реализовать методы -objectAtIndexedSubscript: и -setObject:AtIndexedSubscript: для числовых индексов, -objectForKeyedSubscript: и -setObject:forKeyedSubscript: — для индексов-объектов (см. лекцию Modern Objective-C, 28 мин). Поддержка этого, опять таки, на уровне компилятора, т. е. это должно работать и для старых версий ОС.
В перспективе обещается отказ от поддержки C++ и, как следствие, избавление от его компилятора и отладчика.
Откуда взялась эта клевета? Apple создали собственную libc++ и поддерживают уже практически весь С++11.
Указывайте источники, пожалуйста, иначе грош цена такой информации.
Указываю. Видео с WWDC 2012, Developer Tools Kickoff (400), примерно с 44-й минуты.
Возможно я несколько неверно изложил, но слово клевета — явно слишком сильное, не находите?
Возможно я несколько неверно изложил, но слово клевета — явно слишком сильное, не находите?
Ну учитывая что модули ядра (kext'ы) разрабатываются на C++ (хоть и Embedded и урезанном), то новость об отказе от плюсов выглядит как-то странно, что ли.
Только что посмотрел это видео. Речь идет о компиляторе. Они вовсю работают над новым компилятором LLVM и дебагером LLDB, которые уже давно стали дефолтными. Что-то вроде дословного перевода на 45 минуте звучит так «В то время как Xcode 4.4 и 4.5 все еще поддерживают устаревшие LLVM-GCC и DBG, на данный момент они официально не поддерживаются (deprecated) и в следующем году их не будет вообще.»
Вот и все, новый LLVM компилятор точно так же поддерживает C++, как и старый, по крайней мере нигде не утверждается обратное. То что пропало «GCC» в названии, никак не означает отказ от С++, имхо. Так что ваше заявление реально слишком сильное, «несколько неверно изложил» — это слабо сказано :)
Я уже испугался, как же boost со всеми его плюсами.
Думаю подправить нужно статью.
Вот и все, новый LLVM компилятор точно так же поддерживает C++, как и старый, по крайней мере нигде не утверждается обратное. То что пропало «GCC» в названии, никак не означает отказ от С++, имхо. Так что ваше заявление реально слишком сильное, «несколько неверно изложил» — это слабо сказано :)
Я уже испугался, как же boost со всеми его плюсами.
Думаю подправить нужно статью.
Вроде обещали что и в 4.4, которая с Mountain Lion выйдет уже будут все эти новшества.
Исправьте название IDE на Xcode. 1101_debian его правильно пишет, а Вы — нет.
Ох! Да это просто праздник какой-то! Новые литералы — это жесть!
А за автодополнение NSString отдельное спасибо!
А за автодополнение NSString отдельное спасибо!
Уже известна минимальная версия runtime для OSX/iOS для которой ЭТО будет работать? А то окажется что только для OSX 10.8 / iOS 6 :(
Насколько я понял из видео, должно начать работать уже c выходом Горного Льва.
Да, да, вот и наступил момент когда мой MacBook 2008 года устарел. Mountain Leon на него официально не установится. С другой стороны — железный повод для апгрейда, ведь для работы нужно.
Если вы про литералы, то в видео «Modern Objective-C» говорилось что будет работать на всех версиях iOS. Про OS X не помню, вроде тоже на всех. Типа это компилятор все делает. Нужен только Xcode свежий.
Рботать будет везде, т.к. при компиляции это все оборачивается в обычные [… array/dictionaryWith...].
На самом деле, рад небольшому количеству привнесенного синтаксического сахара, надеюсь не превратится в доселе известный мне C# к котором шла прямо-таки гонка за языком, что требовалось для чтения чужого кода, нежели от работы на самим приложением.
Интересно пофиксили ли они эту багу:
Couldn't register com.yourcompany.XXX with the bootstrap server. Error: unknown error code.
Couldn't register com.yourcompany.XXX with the bootstrap server. Error: unknown error code.
Objective-C стал ещё чуточку ближе к прародителю — Smalltalk.
Сравните:
NSArray *myArr = @[@«one», @«two», @«three»];
и
array := #(#one #two #three).
Сравните:
NSArray *myArr = @[@«one», @«two», @«three»];
и
array := #(#one #two #three).
Насчет автоматически синтезируемых @property. Для каждого свойтсва name будет автоматически создана Ivar "_name", при этом Apple наконец сказали, что отказываются от слов, что _ в начале имени переменной зарезервировано ими. При этом они все равно говорят, что в начале имени метода импользовать симвло _ не рекомендуется.
А я бы хотел регулярные выражения из Perl :)
Мдя… в App Store с DP не пускают. 4.3 на Lion, 4.4 на Caugar.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Новые плюшки в Xcode и Objective-C