enumerateObjectsUsingBlock:
ブロック構文を使用してセットオブジェクトから検索します
-(void)enumerateObjectsUsingBlock:(void (^)(id obj, BOOL *stop))block
解説
ブロック構文を使用してセットオブジェクトから検索します。
返り値
( void )
なし
引数
( void (^)(id obj, BOOL *stop) )block
検索に使用するブロック
フレームワーク
Foundation
クラス
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