スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[iOS]@propertyのあれこれ

参考URL:
[テン*シー*シー]
iPhoneアプリ開発、号外 propertyをちょっと調べてみた


[Objective-Cのプロパティについて]
プロパティの基本的な役割


[雑雑草々]
propertyってどう使うのか?


[強火で進め]
■[iPhoneプログラミング]retain、assign、copy、nonatomicについての簡潔な説明

以下は上記URLのまとめ書きです。


@propertyってそもそも何?
@propertyってのは変数やオブジェクトへのアクセサの設定を行うということです。
アクセサとはsettergetterのことです。

具体提起にはこういう書き換えになります。

プロパティの例

//ヘッダファイル.h
@interface Book{
NSMutableArray *books;
}
@property (nonatomic, retain) NSMutableArray *books;

@end


//メソッドファイル.m
@implementation Book
@synthesize books;

@end


アクセサの例

//ヘッダファイル.h
@interface Book{
NSMutableArray *books;
}
- (NSMutableArray *)books;
- (void)setBooks:(NSMutableArray *)newBooks;

@end


//メソッドファイル.m
@implementation Book

- (NSMutableArray *)books {
return books;
}
- (void)setBooks:(NSMutableArray *)newBooks {
books = newBooks;
}
@end


見たらわかるかもしれないけど、非常に短い記述で済むためとても便利です。
ちなみにどちらも同じように利用できます。


その他@propertyに与える設定についてです。
@propertyに与える設定は以下の通り

属性説明使用例
retainオブジェクトに対して保持を行う。勝手にreleaseしない。各オブジェクト(特にNSArrayなどに有効)
readwrite読み書き可能にする。-
readonly読み込みオンリーにする。-
assignデフォルト設定で、単に参照を持つようにする。普通の変数(NS~)
copy代入にオブジェクトのコピーを使用する。NSString,NSArrayなど
nonatomic合成されるアクセサが非アトミックになるように指定する。完全な取得が可能になる。*1たいていの変数につけとくと便利


*1おそらく、NSThreadなどを利用したスレッド処理での変数同期に利用するものと思われます。

尚、特例としてBOOL値に対しては属性を付けません。
このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。