Слабая структура ссылок для печати - PullRequest
0 голосов
/ 08 июля 2011

У меня есть простой проект, который использует процедуры печати и почты.Для печати у меня есть подкласс UIPrintPageRenderer.Я следую рекомендациям Apple по использованию слабосвязанных классов:

- The base SDK for your Xcode project must be iOS 4.2 or newer. The name for this setting in the build settings editor is SDKROOT (Base SDK).
- The deployment target for your project must be iOS 3.1 or newer. The name for this setting is MACOSX_DEPLOYMENT_TARGET (Mac OS X Deployment Target).
- The compiler for your project must be the LLVM-GCC 4.2 compiler or newer, or the LLVM compiler (Clang) 1.5 or newer. The name for this setting is GCC_VERSION (C/C++ Compiler Version).
- You must ensure that any frameworks not available in your project’s deployment target are weakly linked, rather than required. See “Weak Linking to an Entire Framework” and “Linking Libraries and Frameworks” in Xcode Project Management Guide.

Проблема

Я все еще получаю ошибку при запуске приложения:

2011-07-08 10:47:19.819 MyTestProject[47013:207] *** -[UIWindow setRootViewController:]: unrecognized selector sent to instance 0x5a2aac0
2011-07-08 10:47:19.821 MyTestProject[47013:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIWindow setRootViewController:]: unrecognized selector sent to instance 0x5a2aac0'
2011-07-08 10:47:19.822 MyTestProject[47013:207] Stack: (
    43358288,
    44516140,
    43367003,
    42829430,
    42826226,
    9319,
    1149252,
    1153359,
    1178942,
    1160439,
    1192408,
    47780220,
    42637468,
    42633384,
    1151521,
    1184626,
    9129,
    8997
)
terminate called after throwing an instance of 'NSException'

Я получаю это при попытке запустить приложение для симулятора iPad 3.2.Есть идеи почему?

ps Код работает для iPad 4.2 и 4.3.

Ответы [ 2 ]

3 голосов
/ 08 июля 2011

Из документации для UIWindow свойство rootViewController доступно только для iOS 4.0 и более поздних версий (и, следовательно, setRootViewController):

RootViewController

Контроллер корневого представления для окно.

@property(nonatomic,retain) UIViewController *rootViewController

Обсуждение

Контроллер корневого представления обеспечивает вид содержимого окна. Назначение контроллер представления к этому свойству (либо программно, либо с использованием Interface Builder) устанавливает вид представление контроллера как представление контента окна. Если окно имеет существующая иерархия представлений, старые представления удаляются до того, как новые установлен.

Значение этого свойства по умолчанию: ноль.

Наличие

Доступно в iOS 4.0 и более поздних версиях.

Вот почему ваше приложение падает на iOS 3.2, но не на iOS 4.2 и 4.3.

0 голосов
/ 09 декабря 2011

Не думаю, что вы сможете печатать на iOS ниже 4.2 без каких-либо дополнительных сервисов.На iOs 4.2 или выше есть предустановленные драйверы для принтеров (если я не ошибаюсь), которые поддерживают AirPrint.На более низких iOs эти драйверы не установлены и не могут быть установлены.

Это из: Как напечатать документ с iphone ниже версии ios 4.2

...