Jingalak qavslar yoki standart +dictionaryWithObjectsAndKeys yordamida NSDictionaryni ishga tushirish o'rtasida farq bormi?

Men NSDictionary bilan Apple namuna kodini @{ value:key } belgisi yordamida ishga tushirilganini ko'rdim. +dictionaryWithObjectsAndKeys: yordamida doimiy NSDictionaryni ishga tushirish uchun foydalanaman

Mening savolim:

Ikkita yaratilgan NSDictionaries o'rtasida farq bormi? Xotiraning oqishi haqida tashvishlanishim kerakmi? Men ARC dan foydalanmoqdaman.

Men bu haqda topdim, bu Apple hujjati, lekin u iOS emas, Mac bilan bog'liq. Va yozuv @{ key = value } emas, @{ value:key } emas.

http://developer.apple.com/legacy/mac/library/documentation/LegacyTechnologies/WebObjects/WebObjects_3.1/DevGuide/WebScript/CreatingObjects.html

Ikkinchi savol: ilovani App Store’ga yuborish uchun undan foydalanish xavfsizmi yoki “hujjatsiz API” deb hisoblanadimi?

Rahmat!


person Leandro Alves    schedule 05.09.2012    source manba
comment
Bu havola WebObjects uchun va oddiy ob'ektiv-c ga taalluqli emas, shuning uchun sintaksis boshqacha.   -  person ughoavgfhw    schedule 06.09.2012


Javoblar (1)


Men foydalanaman… +dictionaryWithObjectsAndKeys: … Ikki yaratilgan NSDDictionaries o'rtasida farq bormi?

Kompilyator +[NSDictionary dictionaryWithObjects:forKeys:count:] dan foydalanadi. Shunday qilib, "gotcha" bu so'zma-so'z ifodada ishlatadigan parametrlar/qiymatlar nil bo'lmasligi kerak. +[NSDictionary dictionaryWithObjectsAndKeys:] dan foydalanganda, nolga duch kelganda kirish to'xtaydi. nil ni harfiy ifodaga kalit yoki qiymat sifatida o'tkazish xatodir. Bu sizning dasturingizni o'zgartirishi mumkin (chunki va_listlar orqali lug'at yaratish semantikasi boshqacha), ammo qat'iyroq semantika xatolarni aniqlashga olib kelishi mumkin.

Xotiraning oqishi haqida tashvishlanishim kerakmi? Men ARC dan foydalanmoqdaman.

Ba'zi hollarda sizga avtoreliz puli kerak bo'lishi mumkin - bu siz uni yaratgan kontekstga bog'liq.

Ilovani App Store'ga yuborish uchun undan foydalanish xavfsizmi yoki u "hujjatsiz API" deb hisoblanadimi?

Sizga Apple-Clang 4.0 (Xcode 4.4) kerak bo'ladi. U OS X va iOS ning barcha versiyalari bilan mos keladi:

http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/ObjCAvailabilityIndex/_index.html

Batafsil bu yerda: http://clang.llvm.org/docs/ObjectiveCLiterals.html

person justin    schedule 05.09.2012
comment
Ular WWDC (Modern Objective-C) da deyarli butun sessiyani o'tkazdilar va ularning ko'plab namunali kodi va hujjatlari literallardan foydalanadi. Bularning barchasi llvm saytida hujjatlashtirilgan. Agar ular buni hujjatsiz deb hisoblashsa, hayron bo'lardim. - person Carl Veazey; 06.09.2012
comment
@CarlVeazey ha - bu siz nazarda tutayotgan narsadir: clang.llvm.org/docs/ObjectiveCLiteals .html. Men oxirgi savol uchun foydalanmoqchi bo'lgan aniq ma'lumotnoma bor, lekin avval uni topishim kerak :) - person justin; 06.09.2012
comment
Oh, katta rahmat! Men uni qidirish uchun to'g'ri nomni bilmadim... Bu kodlashda ko'p vaqtni tejaydi. :) - person Leandro Alves; 07.09.2012