Получение ошибок при связывании 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>

Цитаты говорят компоновщику искать в исходных файлах проекта. '< >' Говорит ему искать рамки.

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