ошибка основной анимации - PullRequest
1 голос
/ 11 января 2012

Я возился с Core Animation, пытаясь заставить его работать, и я вполне уверен, что все сделал правильно, но когда я попытался запустить свою программу, Xcode вывел на меня эти странные ошибки:

Неопределенные символы для архитектуры i386: "_OBJC_CLASS _ $ _ CALayer", на который ссылаются: objc-class-ref во ViewController.o "_OBJC_CLASS _ $ _ CABasicAnimation", на которую ссылаются: objc-class-ref во ViewController.o ld: символ (ы) не найден для архитектуры i386 collect2: ld вернул 1 статус выхода

Я понятия не имею, что это значит. Я импортировал инфраструктуру QuartzCore в соответствующий контроллер представления, и вот код, который я использовал для анимации:

UIImage *image01 = [UIImage imageNamed:@"image.png"];
imageView = [[UIImageView alloc] initWithImage:image01];
imageView.frame = CGRectMake(455, 150, 150, 150);

CALayer *imageLayer = [CALayer layer];
imageLayer.bounds = imageView.frame;
imageLayer.contents = imageView;
[view.layer addSublayer:imageLayer];

CGFloat imageXAtStart = imageLayer.position.x;
imageLayer.position = CGPointMake(335, 150);

CABasicAnimation *imageAnimation = [CABasicAnimation animationWithKeyPath:@"position.x"];
imageAnimation.fromValue = [NSNumber numberWithFloat:imageXAtStart];
imageAnimation.toValue = [NSNumber numberWithFloat:335];
imageAnimation.duration = 3;
imageAnimation.beginTime = 2;
[imageLayer addAnimation:imageAnimation forKey:@"position"];

Если это имеет значение, анимация просто должна перемещать изображение / слой от одного значения x к другому.

Ответы [ 3 ]

14 голосов
/ 11 января 2012

Это означает, что вы не связали свое приложение со структурой, которая реализует эти классы.

Имейте в виду, что связывание - это не то же самое, что импорт.Импортируя заголовочные файлы, вы сообщаете компилятору, что классы существуют.Связываясь с фреймворком, вы указываете компилятору на реализацию самих классов.

Щелкните правой кнопкой мыши ваш каталог Frameworks (или любой каталог) в XCode и выберите Добавить существующий каркас .Теперь выберите подходящий фреймворк и нажмите Выберите .

PS: Джордж прав, сделайте что-нибудь со своей нормой принятия.Вы задали пять или около того вопросов, но не приняли один ответ.Если вы продолжите в том же духе, со временем никто не захочет больше отвечать на ваши вопросы.

4 голосов
/ 28 февраля 2015

В моем случае это было только для добавления фреймворка в проект: enter image description here

0 голосов
/ 24 октября 2013

каждый мог видеть, что что-то не входит. Очевидно, что вы должны включить фреймворк. Советовать включать рамки, не говоря, какая из них отстойная. Выберите что?

...