Как сделать так, чтобы универсальное приложение (iPad и iphone 4.1) работало на iPod 3.1.3 - PullRequest
1 голос
/ 08 октября 2010

Я создаю универсальный для iphone / ipad, и я уже установил цель развертывания 3.0. Он может хорошо работать на iPad 3.2 и iphone 4.1. Однако, когда я собираю и запускаю его на своем iPod 3.1.3, среда выполнения автоматически выбирает путь к коду iPad и сообщает, что не может найти UIPopOverController и UIMenuItem. В моем коде пути iPhone я не использую ничего подобного.

Он успешно строится и только при попытке запуска выдает ошибку и не может найти:

dyld: Symbol not found: _OBJC_CLASS_$_UIPopoverController
  Referenced from: /var/mobile/Applications/My_APP
  Expected in: /System/Library/Frameworks/UIKit.framework/UIKit

Отредактировано :

Если я удаляю все свои классы iPad и устанавливаю основной комплект перьев App.info только на iphone. Тогда это работает хорошо. Я думаю, что проблема в том, что он запускает код iPad. Я не знаю, что случилось с моим iPod или моим проектом

Ответы [ 2 ]

2 голосов
/ 08 октября 2010

Необходимо выполнить тесты во время выполнения для классов, которых нет в 3.1.3.У вас не может быть никакого кода, подобного [UIPopoverControler alloc], и вы должны сделать слабую ссылку на фреймворки.

См. Ответы на этот вопрос:

Как мне подойти к созданию универсального приложения iOS,будет включать в себя функции iOS 4, хотя на iPad еще не установлена ​​iOS 4?

(Вопрос не такой, как у вас, но проблема с корнем та же.)

Или эта статья:

http://cocoawithlove.com/2010/07/tips-tricks-for-conditional-ios3-ios32.html

1 голос
/ 08 октября 2010

Если вы просто хотите обойти проблемы времени компиляции, так как это устройство никогда не будет использовать код, о котором идет речь, вы можете просто вызвать классы popover и т. Д. Следующим образом:

Class infopopclass = NSClassFromString(@"UIPopoverController");
if(infopopclass) {
    id infopop = [[infopopclass alloc] initWithContentViewController:myPopViewController];
    [infopop presentPopoverFromRect:CGRectMake(20, 70, 10, 10) inView:self.view permittedArrowDirections:4 animated:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...