objective-c - OC 直接使用@property就能定义属性了吗?
ringa_lee
ringa_lee 2017-04-24 09:14:09
0
2
463
#import <Foundation/Foundation.h>

@interface Person : NSObject


@property  NSString * name;


@end

这样就直接能使用p.name了。
好像不需要如下定义:

#import <Foundation/Foundation.h>

@interface Person : NSObject{
NSString* _name;

}


@property  NSString * name;


@end

这两种方式有啥区别呢?

ringa_lee
ringa_lee

ringa_lee

全員に返信(2)
Peter_Zhu

私の経験から、変数メモリの操作方法を明確に区別できるように、プロパティを使用してすべての名前を定義することをお勧めします (マルチスレッドはまれなので無視できます)。そして、私にとって、これはグローバル変数を識別する最も簡単な方法の 1 つであり、m ファイル内で _name を直接使用すると、これがグローバル変数であることがすぐにわかります。プロパティをグローバル変数として使用するのは非常に良い習慣だと思います。さらに、ここで @freewolf が言及した Syntheticsize は、実際には省略できます。ここでは例として単純なセッターを示します。

リーリー リーリー
いいねを押す +0
洪涛

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート