Слабая структура ссылок для печати

У меня есть простой проект, который использует процедуры печати и почты. Для печати у меня есть подкласс 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 Simulator. Есть идеи почему?

PS код работает для iPad 4.2 и 4.3.

2 ответа

Решение

Из документации для 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.

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

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

Другие вопросы по тегам