2012-06-12 3 views
0

Вот ситуация. Я создал проект в xcode 4.2 с целевым значением развертывания, установленным как 5.0. но я хочу дать обратно совместимость с моим кодом до 4.0. Теперь у меня нет симуляторов для 4.2 или 4.0 в xcode 4.2, поэтому я запускаю свой код в xcode 4.0. Здесь я получил две ошибки:запуск проекта, созданного в xcode 4.2 (цель развертывания 5.0) в xcode 4.0 (цель развертывания 4.0)

1. unknown "strong". I removed it by adding retain instead. 
    2. unknown "@" in project, so I added below code in main.h 

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
int retVal = UIApplicationMain(argc, argv, nil, nil); 
[pool release]; 
return retVal; 

Это то, что мы обычно писали в main.h, прежде чем ARC или iOS5

Теперь другая проблема, с которой я столкнулся, что main.h получал званых, но AppDelegate не получал называемый то есть aplicationDidFinishLaunching никогда не вызывался. Затем я изменил код выше, чтобы что-то вроде этого

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass(AppDelegate.class)); 
[pool release]; 
return retVal; 

Теперь у меня нет проблемы и сборка прошла успешно, и он компилируется в обеих версиях Xcode. Я просто хочу знать, почему это произошло, и для меня все в порядке, чтобы продолжить мой проект с указанным выше основным определением в xcode 4.2, потому что мне это не кажется хорошим.

ответ

0

Пробег: this. Это должно ответить на ваш вопрос.

В принципе, вам нужно сначала нацелиться на iOS4, и он должен работать с iOS5. Проблема в том, что сначала вы начинаете работу с iOS5, потому что iOS4 не знает новых функций. Это может показаться болью, но подумайте, нужно ли поддерживать iOS4, теперь у меня есть iOS6, а iOS5 является большинством среди всех версий ...

Смежные вопросы