Ошибка в Cocoa-Touch со свойствами - PullRequest
0 голосов
/ 15 ноября 2011

У меня есть следующий код (где появляется ошибка):

.h file

#import <Foundation/Foundation.h>
@interface Unit : NSObject
{
    UIImageView *view;
    CGRect rect;
}

@property(readonly, assign) UIImageView *view;
@property(readwrite, assign) CGRect rect;

@end

.m file

#import "Unit.h"
@implementation Unit

@synthesize view;  //Error appears here
@synthesize rect;

@end

Появляющаяся ошибкаexisting ivar 'view' for unsafe_unretained property 'view' must be __unsafe_unretained.Что это значит и как я могу это исправить?

1 Ответ

0 голосов
/ 15 ноября 2011

В вашем примере вы использовали (только для чтения, assign ), однако, поскольку вы также явно создали ivar, вам необходимо добавить квалификатор __unsafe_unretained (из-за assign квалификатор) согласно документации по автоматическому подсчету ссылок на объявлениях свойств .

#import <Foundation/Foundation.h>
@interface Unit : NSObject
{
    CGRect rect;
}

@property(readonly, assign) UIImageView *view;
@property(readwrite, assign) CGRect rect;

@end

Просто удалите объявление ivar, и компилятор сгенерирует правильный квалификатор владения.

...