Получение ошибок при связывании QuartzCore
Я новичок в разработке Objective C и iPhone, но это то, что я пытаюсь сделать... Проблема в QuartzCore и базовых анимационных материалах. Эти строки из моего applicationDelegate
:
#import "QuartzCore/QuartzCore.h"
...
-(void)performTransition {
if(!transitioning) {
CATransition *transition = [CATransition animation];
transition.duration = 0.9;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionMoveIn;
transition.subtype = (isInMainDialog) ? kCATransitionFromRight : kCATransitionFromLeft;
transitioning = YES;
transition.delegate = self;
[window.layer addAnimation:transition forKey:nil];
if (isInMainDialog) {
mainController.view.hidden = YES;
levelController.view.hidden = NO;
isInMainDialog = false;
// start game
[levelController playLevel:1 balls:3 scores:0];
}
else {
mainController.view.hidden = NO;
levelController.view.hidden = YES;
isInMainDialog = true;
}
}
}
ладно.. Это приложение скомпилировано, но при сборке возникают следующие ошибки:
"_kCATransitionFromRight", на который ссылается: _kCATransitionFromRight$non_lazy_ptr в eBreakAppDelegate.o
"_kCAMediaTimingFunctionEaseInEaseOut", на которую ссылается: _kCAMediaTimingFunctionEaseInEaseOut$non_lazy_ptr в eBreakAppDelegate.o
"_kCATransitionMoveIn", на который ссылается: _kCATransitionMoveIn$non_lazy_ptr в eBreakAppDelegate.o
".objc_class_name_CAMediaTimingFunction", на которую ссылается: literal-pointer@__OBJC@__cls_refs@CAMediaTimingFunction в eBreakAppDelegate.o
"_kCATransitionFromLeft", на который ссылается: _kCATransitionFromLeft$non_lazy_ptr в eBreakAppDelegate.o
".objc_class_name_CATransition", на который ссылается: literal-pointer@__OBJC@__cls_refs@CATransition в eBreakAppDelegate.o
ld: символ (ы) не найден
collect2: ld вернул 1 статус выхода
Итак, я думаю, что есть проблема с линковкой, потому что нет проблем во время компиляции. Должен ли я каким-то образом связать кварц с моим проектом или как это можно исправить?
2 ответа
Вы должны добавить QuartzCore.framework к вашей цели:
- щелкните правой кнопкой мыши на цели приложения;
- нажмите [Get Info] в контекстном меню;
- на вкладке [Общие] будет два списка: один для зависимостей, другой для связанных библиотек;
- добавить каркас QuartzCore к нижнему.
Вы должны убедиться, что QuartzCore добавлен в ваш проект, затем измените эту строку:
#import "QuartzCore/QuartzCore.h"
чтобы:
#import <QuartzCore/QuartzCore.h>
Цитаты говорят компоновщику искать в исходных файлах проекта. '< >' Говорит ему искать рамки.