Objective-C, свойства для ссылок - PullRequest
3 голосов
/ 04 марта 2010

Это может быть характерно для iPhone, я не уверен. Компилятор не жалуется при сборке для симулятора, но при компиляции для устройства он выдает несколько забавных ошибок, когда я пытаюсь установить свойства для ссылок на объекты. Например,

@property (nonatomic) CGRect  &finalFrame;

и основной синтезатор

@synthesize finalFrame;

для переменной, объявленной как

CGRect finalFrame;

выдает ошибки

  • тип свойства 'finalFrame' не соответствует типу ивара 'finalFrame'
  • Неузнаваемый insn:
  • Внутренняя ошибка компилятора: ошибка шины
  • Внутренняя ошибка компилятора: в extract_insn, в recog.c: 2904

Однако я могу сделать это вручную без проблем, используя следующие методы:

- (CGRect&)finalFrame;
- (void)setFinalFrame:(CGRect&)aFrame;

Это ошибка gcc? Компилируется для симулятора.

1 Ответ

5 голосов
/ 04 марта 2010

Ваше свойство объявлено как ссылочный тип (CGRect&), но ваша переменная экземпляра не является ссылочным типом (CGRect). Они должны быть одинаковыми, чтобы использовать @synthesize.

Кроме того, немного странно использовать ссылочные типы C ++ в качестве свойств Objective-C, но я думаю, это может работать, пока все файлы компилируются как Objective-C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...