NakajiJapan

餓鬼の超弩級日記


objective-C 文字列

NSString:インスタンスを生成した後に文字列を変更できない静的な文字列クラス
NSMutableString:インスタンスを生成した後も文字列を変更できる動的なクラス

■継承関係
NSObject

NSString

NSMutableString

■文字列定数
@”文字列”

NSString* str = [ @"ABC" length ] // "ABC"の文字数
NInteger len = [ @"ABC" length ] // "ABC"の文字数 (int)
NUInteger len = [ @"ABC" length ] // "ABC"の文字数 (unsigned int)

// copy
NSString* str = [ NSString stringWithString: @"Hello" ];

// @"hello"という文字列のインスタンスをstrに代入
NSString* str = @"hello";
NSMutableString* str = [ NSMutableString stringWithString: @"hello" ];

// 書式ありの文字列
int min = 12;
NSString str = [ NSString stringWithFormat: @"Time : %d", min ];
NSString str = [ NSString stringWithFormat: @"Time : %04d", min ];

// オブジェクトを代入したい場合は「%@」を記述する
NSString name = @"nakajijapan";
NSString str = [ NSString stringWithFormat: @"Time : %@", name ];

// debug
//    コンソールに表示される
NSString name = @"nakajijapan"
NSLog( @"My name is %@", name );

// 文字列の連結
NSString* str1 = @"My name is ";
NSString* str2 = [ str1 stringByAppendingString : @"nakajijapan." ];

// 文字列を一部切り出す
//    NSRangeは「NSUInteger」を持っている
NSRange range = {1,3};
NSString* str = [ @"iPhone" substringWithRange : range ];
No Comments »

objective-c methodもろもろ

メソッドのプロトタイプ宣言

- (返り値の型) メソッド名
例) – (void) sayHello0; // say Hello

+:クラスに対するメソッド
ー:インスタンスに対するメソッド

Objective-Cでは、クラスも一つのオブジェクト。
インスタンスを生成する場合は、このクラスのオブジェクトを使って生成する。

- (int) numberOfFiles; // method for returning int
- (UIWindow *) mostFrontWindow; // method for returning UIWindow object

引数がある場合。

- (返り値) メソッド名 + 引数1の説明:(引数1の型) 引数1の名前
引数2の説明:(引数2の型) 引数2の名前


引数Nの説明:(引数Nの型) 引数Nの名前;

sayMessage(“Hello”, 1, 2);

[ object sayMessage: "Hello"
speed: 1
pitch: 2
];

アクションのメソッド宣言

- (IBAction) loadUrl: (id) sender; // read webpage

実はvoid。Interface Builderがらみでこうしているらしい。

型「id」について
これはObject-Cのオブジェクトならなんでも受け付けるというもの。voidのようなもの。

つながれるものを制限したい場合は、クラスを指定する。

例) – (IBAction) loadUrl: (UITextField *) sender;

No Comments »