Cocoa API解説(macOS/iOS)

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。

目次

-enumerateLinesUsingBlock:

INDEX>Foundation>NSString

指定した文字列とマッチする行があるかを検索します

apple(OS X)
apple(iOS)

-(void)enumerateLinesUsingBlock:(void (^)(NSString *line, BOOL *stop))block

解説

指定した文字列とマッチする行があるかを検索します

返り値

( void )

なし

引数

( void (^)(NSString *line, BOOL *stop) )block

検索に使用するブロック
line 検索文字列
stop 検索を中止(stopにYESを入れることで、繰り返しを途中でやめることができます。)

クラス

NSString

Instance Methods

使用可能

OS X 10.6
iOS 4.0

参照

例文

#pragma mark enumerateLinesUsingBlock:
- (void)displayText062:(NSString *)text {
	
    NSLog(@"text 062 %@",text);
}
-(void)method062
{
    __block BOOL found = NO;
	
	//find word
	NSString *multiLine = [NSString stringWithString:@"apple\nbanana\norange\n" ];
	NSString *string = [NSString stringWithString:@"apple" ];
	
	[multiLine enumerateLinesUsingBlock:^(NSString *line, BOOL *stop) {
		
		if ([line localizedCaseInsensitiveCompare:string] == NSOrderedSame) {
			*stop = YES;
			found = YES;
			NSLog(@"myBlock class= %@",[line className]);
            
            [self performSelectorOnMainThread:@selector(displayText062:) withObject:string waitUntilDone:NO];
            
		}else{
            *stop = YES;
			found = NO;
            [self performSelectorOnMainThread:@selector(displayText062:) withObject:@"NO!" waitUntilDone:NO];
            
        }
		
	}];
	
}
#import "MyObject.h"

@implementation MyObject

- (IBAction)myAction:(id)sender
{
//NSStringの場合	

	//文字列の中に検索行があったらYESを返す。
	
	//ブロックストレージ
	__block BOOL found = NO;
	
	//データベース
	NSString *multiLine = [NSString stringWithString:@"1st line\n2nd line\n3rd lin3\n" ];
	//検索文字列
	NSString *string = [NSString stringWithString:[myOutlet stringValue] ];//@"gamma";

	NSLog( @"retainCount = %u",[string retainCount] );
	
	[multiLine enumerateLinesUsingBlock:^(NSString *line, BOOL *stop) {
		
		if ([line localizedCaseInsensitiveCompare:string] == NSOrderedSame) {
			*stop = YES;
			found = YES;
			NSLog(@"myBlock class= %@",[line className]);
	
		}
		
	}];
	
	NSLog( (found)?@"YES":@"NO" );	
}

@end

編集時のバージョン

OS X 10.8
iOS 6.1