macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

-arrayByAddingObject:

INDEX>Foundation>NSArray

レシーバにanObjectを付け加えた新しい配列を返します
-(NSArray *)arrayByAddingObject:(id)anObject

解説

レシーバをコピーした新たな配列にオブジェクト(anObject)を付け加えて返します。
追加されたオブジェクトにはretainメッセージが送信されます。
オブジェクト(anObject)がnilならば、NSInvalidArgumentExceptionが起こされます。

返り値

( NSArray * )

配列(NSArrayまたはそのサブクラス)

引数

( id )anObject

加えるオブジェクト

クラス

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
}