Угадайте, это простой вопрос, но после поиска в Интернете и чтения во многих документах я все еще придерживаюсь глупой ошибки. Так что я думаю, у меня есть некоторые проблемы с разучиванием в соответствии с ARC ...Почему я вижу проблему с ARC, говоря, что я объявлял метод с определенным селектором?
Я пытаюсь написать свою первую программу Objective-C с использованием новых функций ARC. Как я привык, я создал два объекта и попытаюсь вызвать метод в одном объекте из другого. Я сделал это в старых Xcode тысячи раз, что путь, но с ARC, он бросает ошибки на меня:
//ClassOne.h
@interface ClassOne : SPSprite
{
SPImage *stammImg;
}
-(void)methodToCall:(NSString*)msgString;
@end
//ClassOne.m
-(void)methodToCall:(NSString*)msgString
{
NSLog(@"called, thank you");
}
//ClassTwo.h
#import "ClassOne.h"
// somewhere in ClassTwo.m
ClassOne *myObject = [[ClassOne alloc] init];
[myObject methodToCall:@"hello"];
Легко, не так ли? Но это не работает! Что изменилось в методе определения и вызова при создании нового проекта с использованием ARC?
Компилятор бросает ошибку:
Автоматический выпуск подсчета ссылок: ошибка: тип приемника 'SPSprite', например, сообщения, не объявляет метод с селектором 'methodToCall:' [4]
Редактировать: проверено все входы о SPSprite или верхнем корпусе. Отлично. Угадайте что: Если я отключить ARC в сборки-настройки, все работает отлично ...
Guess будет легко ответить для кого-то уже кодирование с использованием ARC ...
Ваш код, как показано на самом деле не отражают проблему, которую вы имеете, так как она не включает в себя класс SPSprite. Если вы хотите получить помощь по вашей фактической проблеме, было бы лучше показать ваш фактический код. – matt
Его проблема заключается только в опечатке верхнего/нижнего регистра в '[[classOne alloc] init]'. Это исправление кода будет работать очень хорошо, учитывая, что SPSprite существует, как указывает @matt. – Pascal
SPSPrite - это класс рамки воробья, который я использую для своих игр ... мой ClassOne только подклассифицирует его. Угадайте, это не имеет значения, так как я не делал никаких изменений к нему? – skywise