ない私が読んでいます: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
}
私は、Xcodeでプロジェクトを作成しました。
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;
}
:
上記- Webページが 自己> IVAR = 5 を使用しています私は= 5それはどのような違いを生むん
をIVARを使用していますか?
- 上記のWebページが IVAR = Rは述べています。 //違法我々は読み取り専用プロパティに
を参照しているためIVAR = 5は(私が使用している)IVAR = Rと同じではありませんか? どのように違法ではありませんか?
この記事は間違っています。 'self-> iVar = 5'と' iVar = 5'はまったく同じです。しかし、 'self.iVar = 5'は違法です。 – ughoavgfhw