macOS/iOS API解説

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

目次

makeObjectsPerformSelector:

配列オブジェクトの各要素に対してメッセージ(aSelector)を送ります
-(void)makeObjectsPerformSelector:(SEL)aSelector

解説

配列オブジェクトの各要素に対してaSelectorのメッセージを送ります。
引数は渡せません。
配列を修正するためにこのメソッドを使用すべきではありません。
レシーバーの配列を変更するようなメッセージであってはいけません
aSelectorがNULLであればNSInvalidArgumentException が起こります。

返り値

( void )

なし

引数

( SEL )aSelector

アクションセレクタ

クラス

NSArray

Instance Methods

使用可能

10.0

参照

- makeObjectsPerformSelector:withObject:

例文

#pragma mark makeObjectsPerformSelector:
//各オブジェクトにメッセージを送信
-(void)method034
{
    CustomClass *customClass1 = [[CustomClass alloc] init];
        NSMutableString *muStr1 = [[NSMutableString alloc] initWithCapacity:0];
        [muStr1 appendString:@"aaa"];
        [customClass1 setCustomClassValue:muStr1];
    CustomClass *customClass2 = [[CustomClass alloc] init];
        NSMutableString *muStr2 = [[NSMutableString alloc] initWithCapacity:0];
        [muStr2 appendString:@"bbb"];
        [customClass2 setCustomClassValue:muStr2];
    CustomClass *customClass3 = [[CustomClass alloc] init];
        NSMutableString *muStr3 = [[NSMutableString alloc] initWithCapacity:0];
        [muStr3 appendString:@"ccc"];
        [customClass3 setCustomClassValue:muStr3];
    
    NSArray *arr =[[NSArray alloc] initWithObjects:customClass1,
                                                    customClass2,
                                                    customClass3,
                   nil];
    NSLog(@"%s %@,%@,%@",__FUNCTION__,[arr objectAtIndex:0],[arr objectAtIndex:1],[arr objectAtIndex:2]);
    //=>-[OOOAppDelegate method034] aaa,bbb,ccc
    [arr makeObjectsPerformSelector: @selector(appendSomeString)];
    //appendSomeStringは末尾に ! を付けるだけのメソッド
    
    NSLog(@"%s %@,%@,%@",__FUNCTION__,[arr objectAtIndex:0],[arr objectAtIndex:1],[arr objectAtIndex:2]);
    //=>-[OOOAppDelegate method034] aaa!,bbb!,ccc!
    
}
@end