macOS/iOS API解説

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

目次

enumerateObjectsUsingBlock:

INDEX>Foundation>NSSet

ブロック構文を使用してセットオブジェクトから検索します
-(void)enumerateObjectsUsingBlock:(void (^)(id obj, BOOL *stop))block

解説

ブロック構文を使用してセットオブジェクトから検索します。

返り値

( void )

なし

引数

( void (^)(id obj, BOOL *stop) )block

検索に使用するブロック

クラス

NSSet

使用可能

10.6
iOS4.0

参照

例文

#pragma mark enumerateObjectsUsingBlock:
/*
 CustomClass.m
 -(NSMutableString *)appendSomeString
{
    [customClassValue appendString:@"!"];
    return customClassValue;
    
}
*/
-(void)method001
{
    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];

    NSMutableSet *muSet = [NSMutableSet setWithObjects:customClass1,
                           customClass2,
                           customClass3,
                           nil];
    
    NSLog(@"%s %@",__FUNCTION__, [muSet description]);
    [muSet enumerateObjectsUsingBlock:^(id obj,BOOL *stop) {
        //appendSomeStringは末尾に ! を付けるだけのメソッド
        [obj appendSomeString];
            //if ([obj isEqualToString:@"bbb"]) {
                //*stop = YES;   
            //}
            }];
    
    NSLog(@"%s %@",__FUNCTION__, [muSet description]);
    //=>-[OOOAppDelegate method001] {(bbb,ccc,aaa)}
    //=>-[OOOAppDelegate method001] {(bbb!,ccc!,aaa!)}
    
}
#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
	//NSSetの場合	
	
	//データベース(NSSetでできている)の中に検索文字列があったかどうか
	__block BOOL found = NO;
	
	//データベース
	NSSet *aSet = [NSSet setWithObjects: @"Alpha", @"Beta", @"Gamma", @"X", nil];
	//検索文字列
	NSString *string = [NSString stringWithString:@"gamma" ];//

	NSLog( @"retainCount = %u",[string retainCount] );
		
	[aSet enumerateObjectsUsingBlock:^(id obj, BOOL *stop) {
		if ([obj localizedCaseInsensitiveCompare:string] == NSOrderedSame) {
			*stop = YES;
			found = YES;
			NSLog(@"myBlock class= %@",[obj className]);
	
		}
	}];
	
	
	NSLog( (found)?@"YES":@"NO" );
	
	
}

@end