-arrayByAddingObject:
レシーバにanObjectを付け加えた新しい配列を返します
-(NSArray *)arrayByAddingObject:(id)anObject
解説
レシーバをコピーした新たな配列にオブジェクト(anObject)を付け加えて返します。
追加されたオブジェクトにはretainメッセージが送信されます。
オブジェクト(anObject)がnilならば、NSInvalidArgumentExceptionが起こされます。
返り値
( NSArray * )
配列(NSArrayまたはそのサブクラス)
引数
( id )anObject
加えるオブジェクト
フレームワーク
Foundation
クラス
NSArray
Instance Methods
使用可能
10.0
iOS2.0
例文
#pragma mark arrayByAddingObject: -(void)method015 { NSArray *oldArray = [NSArray arrayWithObjects:@"aaa",[NSNumber numberWithFloat:2.0],@"bbb",@"ccc",nil]; NSMutableString *aString = [NSMutableString stringWithCapacity:1]; [aString appendString:@"aString"]; NSLog(@"015 oldArray= <0x%08x>,%@",(unsigned int)oldArray,[oldArray description]); NSArray *newArray = [oldArray arrayByAddingObject:aString]; NSLog(@"015 oldArray= <0x%08x>,%@",(unsigned int)oldArray,[oldArray description]); NSLog(@"015 newArray= <0x%08x>,%@",(unsigned int)newArray,[newArray description]); //=>015 oldArray= <0x0685d8b0>, (aaa,2,bbb,ccc) //=>015 oldArray= <0x0685d8b0>, (aaa,2,bbb,ccc) //=>015 newArray= <0x06a782d0>, (aaa,2,bbb,ccc,aString) //新しい配列(newArray)は古い配列(oldArray)をコピーしたので含まれる要素は同じもの //個々の要素が複製されているわけではない。 NSLog(@"015 index0 of oldArray= <0x%08x>,%@",(unsigned int)[oldArray objectAtIndex:0],[oldArray objectAtIndex:0]); NSLog(@"015 index0 of newArray= <0x%08x>,%@",(unsigned int)[newArray objectAtIndex:0],[newArray objectAtIndex:0]); //=>015 index0 of oldArray= <0x0000671c>,aaa //=>015 index0 of newArray= <0x0000671c>,aaa //配列は変更不可でも、5番目の要素(indexは4)は変更可能文字列なので、変更できる NSLog(@"015 index4 of newArray= <0x%08x>,%@",(unsigned int)[newArray objectAtIndex:4],[newArray objectAtIndex:4]); //=>015 index4 of newArray= <0x068718d0>,aaa [aString appendString:@"+fff"]; NSLog(@"015 index4 of newArray= <0x%08x>,%@",(unsigned int)[newArray objectAtIndex:4],[newArray objectAtIndex:4]); //=>015 index4 of newArray= <0x068718d0>,aString+fff }