検索

ホームページ  >  に質問  >  本文

objective-c - OC 直接使用@property就能定义属性了吗?

#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_leeringa_lee2804日前470

全員に返信(2)返信します

  • 天蓬老师

    天蓬老师2017-04-24 09:16:09

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

    リーリー リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-24 09:16:09

    リーリー

    返事
    0
  • キャンセル返事