Як початковий програміст iPhone, яка найкраща практика написання додатків, які використовуються або з iOS 5, або з більш старими версіями? Зокрема, чи варто продовжувати використовувати випуск / збереження даних, чи слід ігнорувати це? Це важливо?
Як початковий програміст iPhone, яка найкраща практика написання додатків, які використовуються або з iOS 5, або з більш старими версіями? Зокрема, чи варто продовжувати використовувати випуск / збереження даних, чи слід ігнорувати це? Це важливо?
Відповіді:
Тобі вирішувати. Ви можете писати програми за допомогою ARC (Автоматичний підрахунок посилань), а Xcode запише "клейовий код", щоб дозволити вашим додаткам з підтримкою ARC запускатись на iOS 4, ніяких модифікацій не потрібно. Однак деякі речі не спрацьовують, і найбільш помітно, що багато бібліотек, які ви хочете використовувати, викличуть (іноді) незліченні помилки, і ви не зможете їх використовувати, поки розробники не випустять оновлення, сумісне з ARC.
Редагувати : нещодавно я виявив, що ви можете вимкнути ARC на основі файлу. Див pixelfreak відповідь «s . Отже, моя порада все ще стоїть, але тепер сторонні бібліотеки не повинні оновлюватися для роботи з ARC.
Ось що Apple говорить про відмову від ARC для певних файлів:
Коли ви мігруєте проект для використання ARC, прапор компілятора -fobjc-arc встановлюється за замовчуванням для всіх вихідних файлів Objective-C. Ви можете відключити ARC для конкретного класу, використовуючи прапор компілятора -fno-objc-arc для цього класу. У Xcode на вкладці Цільові фази збірки відкрийте групу Compile Sources, щоб відкрити список вихідних файлів. Двічі клацніть файл, для якого потрібно встановити прапор, введіть -fno-objc-arc на спливаючу панель, а потім натисніть Готово.
Повний посібник з переходу дивіться тут .
-fno-objc-arc
JSONKit
, наприклад. Спробуйте запустити це через чек ARC. Ви побачите, що я маю на увазі. ;)
Для тих, хто все ще цікавить, як вимкнути ARC на окремих файлах, ось що я зробив:
Build Phases > Compile Sources
Я не знаю, чи це рекомендований спосіб, але це працює для мене.
PS: Я зібрав цю інформацію з clang.llvm.org тут, яка є загальнодоступною, тому не підпадає під NDA.
iOS 5 все ще знаходиться під NDA, і, ймовірно, буде доти, доки вони не випустять публічну версію. Якщо у вас є обліковий запис розробника, зайдіть на Форуми розробників Apple і запитайте його.
Для попередніх версій вам потрібно порахувати посилання та зберегти та випустити відповідно. Перегляньте посібник з управління пам’яттю .
Редагувати: Ось загальна специфікація для автоматичного підрахунку довідок та цитата з загальної сторінки iOS 5 :
Автоматичний підрахунок посилань (ARC) для Objective-C робить управління пам’яттю завданням компілятора. Увімкнувши ARC за допомогою нового компілятора Apple LLVM, вам більше ніколи не потрібно буде вводити файл зберігання чи випуск, значно спрощуючи процес розробки, зменшуючи при цьому збої та витоки пам'яті. Компілятор має повне розуміння ваших об'єктів і випускає кожен об'єкт миттєво, коли він більше не використовується, тому програми запускаються так само швидко, як ніколи, з передбачуваною плавною роботою.
Наразі подробиці світлі / під NDA, але Apple впровадила автоматичний підрахунок посилань (ARC) в iOS 5, як це детально описано тут: http://developer.apple.com/technologies/ios5/
Якщо ви розробляєте новий додаток у Xcode 4 за допомогою iK 5 SDK, можете сміливо ігнорувати підрахунок збереження / випуску.
[редагувати] sudo rm -rf робить хороший момент; можуть бути значно постраждали сторонні губи
Ніхто не згадав SystemConfiguration.framework ? Будь ласка, не забудьте помістити його в рамки . Я з жалем витратив кілька годин, щоб усвідомити це.
Безумовно, це вибір розробника чи команди. ARC (автоматичний лічильник довідок) полегшив роботу, автоматично керуючи пам'яттю. Він вивільняє, зберігає та розмовлятиме, коли це доречно. Я вважаю, що ви повинні отримати досвід управління пам'яттю самостійно, бажано, в тестовій програмі, якщо ви ще цього не зробили. Ще слід врахувати, чи покладається ваша програма на сторонні бібліотеки, які, якщо не перетворені на ARC, не дозволять вашій програмі збиратись. Вибір, очевидно, залежить від ситуації.
встановити прапор як -fno-objc-arc в налаштуваннях проекту> Фази збірки> Компілювати джерела