iPhone/iPod touch 開発

Foundation

http://sumi.riise.hiroshima-u.ac.jp/skitch/ios-20110526-011225.png

リファレンスと主なクラス

文字列 (NSString, NSMutableNSString)

NSStringは文字列を扱うクラス、NSMutableString は、変更可能な文字列を扱う。

NSMutableNSString は、NSString のサブクラスとして定義されており、NSStringにデータを更新するためのメソッドを追加したものになっている。他のCollection of data系のクラス (NSArray, NSDictionaryなど) も同様。

NSString リテラルは、@を先頭につける。

@"文字列"

NSString を生成するには

+ (id)stringWithFormat:(NSString *)format, ...
+ (id)stringWithString:(NSString *)aString~

等を使う。+ で始まるのは、クラスメソッドであることを示している。stringWith... は、内部で [[NSString alloc] init] のような事をしている。このように新しいオブジェクトを生成するメソッドを特に「ファクトリーメソッド」と呼んでいる。

もしくは

- (id)initWithFormat:(NSString *)format, ...
- (id)initWithString:(NSString *)aString~

をつかってもよい。この場合は自分で割り当てる (alloc) 必要がある。

【例】NSString 初期化(生成)

	NSString *str1=[NSString stringWithFormat:@"value=%03d",10];
	NSString *str2=[[[NSString alloc] initWithFormat:@"test"] autorelease];
	NSString *str3=[[str1 stringByAppendingString:str2] autorelease];
	
	NSLog(@"%@",str1 );
	NSLog(@"%@",str2 );
	NSLog(@"%@",str3 );

【注意】自分でallocしたオブジェクトは、自分で解放する必要がある。それ以外のものは自分で解放しては「いけない」

NSString の主なインスタンスメソッド:

文字列の長さを返す

-(unsigned int) length

aStringと等しいかどうか調べる。等しければYESを返す。

-(BOOL) isEqualToString: (NSString*)aString

aStringと比較し、-1,0,1 を返す。結果をしめす以下の定数も定義されている。

-(NSComparisonResult)compare:(NSString*)aString
-(NSComparisonResult)compare:(NSString*)aString options:(NSStringCompareOptions)mask
NSComparisonResult は以下のいずれか。
  NSOrderedAscending
  NSOrderedSame
  NSOrderedDescending

aString が含まれるかチェック。末尾についてるかどうか見たい時は hasSuffix、先頭の場合は hasPostfixを使う。

- (BOOL)hasPrefix: (NSString*)aString
- (BOOL)hasSuffix: (NSString*)aString

aString が含まれるかチェック。先頭、末尾に限らずどこに含まれるか調べ、結果を NSRange で戻す。NSRange は C 構造体。

-(NSRange) rangeOfString: (NSString*) aString
-(NSRange) rangeOfString: (NSString*) aString option:(NSStringCompareOptions)mask

target を replacement で置き換え、新しい NSString を作成する。

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement

NSMutableString の主なインスタンスメソッド:

文字列を設定する

- (void)setString:(NSString *)aString

文字列を追加する。

- (void)appendString:(NSString *)aString
- (void)appendFormat:(NSString *)format ...

インデクスを指定し、文字列を削除する

- (void)deleteCharactersInRange:(NSRange)aRange

文字列を挿入する

- (void)insertString:(NSString *)aString atIndex:(NSUInteger)anIndex

インデクスと長さを指定し、文字列を置き換える

- (void)replaceCharactersInRange:(NSRange)aRange withString:(NSString *)aString

文字列を検索し、別の文字列と置き換える

-  (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
         options:(NSStringCompareOptions)opts range:(NSRange)searchRange

NSMutableString は、変更に応じて内部の記憶領域を拡張する。クラスメソッドの stringWithCapacity を使ってはじめに確保する記憶領域の大きさをしてしておけば、高速に処理ができる。

+ (id)stringWithCapacity:(NSUInteger)capacity

コレクション (NSArray, NSDictionary, NSSet)

コレクションは、オブジェクトの集合を扱うための機能。

  • NSArray : 配列。順序を持ったオブジェクトの集合。インデックスでアクセスする。
  • NSDictionary : 辞書。キー(オブジェクト)に値となるオブジェクトを対応づける。ハッシュ、連想配列。
  • NSSet : 集合。順序を持たないオブジェクトの集合。要素の重複は許さない。

これらはオブジェクトの集合を扱うため、int などの数値は直接入れる事ができない。数値を入れたい時は、NSNumber を使ってをオブジェクトを生成しなくてはならない。


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-06-02 (木) 12:02:35 (2215d)