내가 읽고있다 수행 방법 : http://cocoacast.com/?q=node/103읽기 전용 속성 작업
내가 위의 페이지에서이 방법을 건너 온 :
-(void)foo
{
self->iVar = 5; //legal because we are referencing a member variable
iVar = r; // illegal because we are referencing a readonly property
}
은 그때 엑스 코드에서 프로젝트를 생성합니다.
Test0.h
#import <Foundation/Foundation.h>
@interface Test0 : NSObject
{
@private int iVar;
}
@property (readonly, assign) int iVar;
- (void) foo;
@end
Test0.m
#import "Test0.h"
@implementation Test0
@synthesize iVar;
- (void) foo
{
iVar = 5;
}
@end
main.m 콘솔의 결과는 5
내 질문입니다
#import <Foundation/Foundation.h>
#import "Test0.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
Test0 *t1 = [[Test0 alloc] init];
[t1 foo];
NSLog(@"%d", t1.iVar);
}
return 0;
}
:
- 위에서 언급 한 웹 페이지가 는 자기> 바르 = 5 내가 바르 사용한 은 = 5
는 어떤 차이가 않습니다 사용?
- 위에서 언급 한 웹 페이지에는 iVar = r; // 읽기 전용 속성을 참조하기 때문에 불법입니다
iVar = 5 (iVar = 5)는 iVar = r과 같지 않습니까? 어떻게 불법이 아닌가?
그 기사가 잘못되었습니다. 'self-> iVar = 5'와'iVar = 5'는 완전히 동일합니다. 'self.iVar = 5'는 불법입니다. – ughoavgfhw