Какой тип проекта для приложения TableViewSuite - PullRequest
1 голос
/ 30 сентября 2011

Я перехожу от теории к какой-то практике. Я скачал с сайта Apple несколько примеров кодов. Первое приложение - TableViewSuite от

https://developer.apple.com/library/ios/#samplecode/TableViewSuite/Introduction/Intro.html

выглядит красиво и привлекательно. Больше всего мне нравится программировать файл .nib. Я пытался повторить это приложение, но, о дорогой, какой проект выбрать?

  1. Приложение для навигации
  2. Приложение для просмотра

или

  1. Приложение на основе окон?

Сначала я попробовал оконное приложение, потому что оно обещает

Этот шаблон обеспечивает отправную точку для любого приложения. Он предоставляет только делегат приложения и окно.

Звучит хорошо. Просто окно и делегат, но когда я начал писать код, я столкнулся с такой дилеммой. В коде Apple первое, что я должен реализовать для предоставления файла пера с помощью табличного представления, это

- (void)applicationDidFinishLaunching:(UIApplication *)application {

/*
 Create and configure the navigation and view controllers.
 */ 

RootViewController *rootViewController = [[RootViewController alloc] initWithStyle:UITableViewStylePlain];

// Retrieve the array of known time zone names, then sort the array and pass it to the root view controller.
NSArray *timeZones = [NSTimeZone knownTimeZoneNames];
rootViewController.timeZoneNames = [timeZones sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
self.navigationController = aNavigationController;
[aNavigationController release];
[rootViewController release];

// Configure and display the window.
[window addSubview:[navigationController view]];
[window makeKeyAndVisible];

}

Этот метод для меня понятен. Я имею в виду, что для меня ясно, что он делает. В моем приложении этот метод реализован совершенно по-другому.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

Возвращает BOOL вместо void и не получает (UIApplication *) параметр приложения, и я не могу инициализировать RootViewController со стилем.

Итак, какой проект выбрать? Пожалуйста, помогите мне с вашим советом. Спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2011

Эй, Натан, оба эти метода делают одно и то же.И если вам не хватает экземпляра application, вы можете создать его, используя [UIApplication sharedApplication], так как это одиночный объект, который будет возвращать один и тот же экземпляр каждый раз.Если вы новичок в iPhone, то сначала выберите View Based, затем перейдите к приложению Navigation, а затем, наконец, к оконному приложению.
И о двух вышеуказанных методах
- (void)applicationDidFinishLaunching:(UIApplication *)application
метод используется в более ранних версиях iOS для инициализации приложения и подготовки его к запуску.В iOS 3.0 и более поздних версиях вы должны использовать
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions.
Это строки прямо из документов Apple, которые вы можете проверить здесь


Разница между этими двумя методами заключается в том, что когда ваше приложение запускается из-за локального / push-уведомления,вызывается метод - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions и в качестве опции запуска передается словарь.Так что используйте этот вместо другого.


И о вышеупомянутом загруженном коде это приложение на основе навигации.

0 голосов
/ 30 сентября 2011

Что касается того, какой тип проекта использовать, я думаю, что выбор приложения на основе Windows является хорошей отправной точкой.Как вы сказали, это окно и делегат, и это в значительной степени основа.

Этот метод:

  • (void) applicationDidFinishLaunching: (UIApplication *) application

на самом деле используется в старых версиях iOS.Вы должны использовать:

  • (BOOL) приложение: (UIApplication *) приложение didFinishLaunchingWithOptions: (NSDictionary *) launchOptions

Этот метод в основном делает то же самое, за исключением того, что требуетсядва параметра вместо 1. Первый - UIApplication (как и первый метод).Второй параметр - это словарь, который сообщает вам, почему приложение было запущено (открыто с трамплина, открыто в результате действия push-уведомления и т. Д.).

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

Не должно быть никаких причин, по которым код, который вы разместили выше, не может быть использован.Вам просто нужно добавить возвращаемое значение.Ничто не должно мешать вам инициализировать ваш UINavigationController или ваш RootViewController (который, как я полагаю, является подклассом UITableView).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...