言っときますけど,プロパティはホントに頻出です!!!
まず,新しいクラスを定義しましょう.
そのために,プロジェクトに新しくファイルを追加します.
XCodeのファイルメニューの中から,
File → New → New File
と進んでいきましょう.
そのあと,
Objective-C class
を選択し,nextを押します.
Class名は
MyFirstClass
にします.クラス名は特に指定はないので,好きな名前でも結構です.
さらに,Subclass ofのプルダウンメニューで
NSObject
を選択してcreateを押してファイルを追加しましょう.
そうすると,「MyFirstClass.h」「MyFirstClass.m」ファイルが追加されたと思います.
それでは,MyFirstClass.hの中身をみてみましょう.
非常にすっきりしてますね笑
これを
@interface MyFirstClass : NSObject {
int myInt;
NSString *myString;
}
@property(nonatomic, strong, readwrite) NSString *myString;
@property(unsafe_unretained, readwrite) int myInt;
@end
このように書き加えて下さい.
それでは解説していきます.
@interface~@endで書いたものが,
このクラスの定義部分(宣言部分)になります.
また,{~}に書いた部分に変数を宣言します.
さらに,宣言した変数をプロパティとして扱いたい場合は
@property(nonatomic, strong, readwrite) NSString *myString;
@property(unsafe_unretained, readwrite) int myInt;
このように書いてください.@property(unsafe_unretained, readwrite) int myInt;
@propertyの後に,オーナーシップ,読み書き属性の設定を行い,どの変数をプロパティにするかを宣言します.
オーナーシップ等の詳しい話は割愛させて頂きますが(私自身完全に理解できていない...)
「NS~」「UI~」ではじまる型の変数をプロパティにしたい場合は
(nonatomic, strong, readwrite)
を指定しておけばとりあえずは大丈夫です.
さて,このままだとwarningがでていると思いますので,更に続けます.
今度はMyFirstClass.mの方を見て下さい.
@implementation MyFirstClass
@synthesize myString, myInt;
@end
@synthesize myString, myInt;
@end
先程,~.hファイルの@interface~@end部分が宣言部分であると説明しました.
それに対し,~.mファイルの@implementation~@end部分は宣言したものに対して実装部分といえます.
さて,追加した1行を見てみますと,先程プロパティとして宣言した変数名が
@synthesizeの後に書かれています.
これは,この2つの変数を「プロパティとして使いますよ~」
と宣言している,程度に思っておいて下さい.
以上で,クラスの定義,更にプロパティの実装までが完了しました.
それでは,実際にこのプロパティを使ってみましょう.
次の記事へ
HOMEに戻る