Создать 10.5-дружественное приложение Core Data с Xcode 4 - PullRequest
2 голосов
/ 14 апреля 2011

Я хочу создать приложение Core Data (я использую Xcode 4) с поддержкой OS X 10.5.Однако я заметил, что при создании приложения с основными данными генерируется код с использованием функций, доступных в версии 10.6 и более поздних, например, URLForResource:withExtension:.Кроме того, кажется, есть много изменений в том, как ManagedObjectContext, PersistentStoreCoordinator и ManagedObjectModel создаются в Xcode 4. Пример ниже:

Xcode 4

- (NSManagedObjectModel *)managedObjectModel {
    if (__managedObjectModel) {
        return __managedObjectModel;
    }
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"SampleApp" withExtension:@"momd"];
    __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];    
    return __managedObjectModel;
}

XCode 3.2

- (NSManagedObjectModel *)managedObjectModel {
    if (managedObjectModel) return managedObjectModel;
    managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];    
   return managedObjectModel;
}

Я думал просто о копировании и вставке этого кода из нового проекта Xcode 3.2, но я не уверен, что это может что-то сломать.Есть ли способ заставить Xcode 4 генерировать код, который будет работать с 10.5?

1 Ответ

1 голос
/ 14 апреля 2011

Убедитесь, что вы установили целевой показатель развертывания 10,5.

Убедитесь, что вы тестируете в системе 10.5. Не развертывайте на 10,5 пользователей без тестирования, полагая, что оно «просто сработает».

Тогда у вас есть два варианта.

  1. Вы можете посмотреть каждый API в документации, там будет указано (например): «Доступно в MacOSX 10.6 или более поздней версии». В этом случае вы можете продолжить использовать Xcode 4, но это утомительно (и подвержено ошибкам). Компилятор / компоновщик не предупредит вас о том, что метод не доступен в 10.5, полагая, что вы принимаете правильное решение.

  2. Используйте 10,5 SDK в качестве базового SDK. Это предпочтительное решение, но требует Xcode 3.2 (который доступен бесплатно на developer.apple.com). Вы не можете использовать новый блестящий Xcode 4, но это цена, которую вы должны заплатить за поддержку 3,5-летней ОС (она была выпущена в октябре 2007 года).

Третий вариант - установить SDK 10.5 в Xcode 4, но он официально не поддерживается, поэтому я не могу рекомендовать его всерьез.

Если поддержка 10.5 действительно важна для вас и ваших пользователей, я настоятельно рекомендую Xcode 3 и 10.5 SDK. По моему опыту, это наименее болезненная комбинация.

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