IOS開發(59)之Block Object的調用

來源:互聯網
上載者:User

1 前言
本文將介紹如何函數調用Block Object以及Block Object調用Block Object。

2 代碼執行個體
TestDemo.h


[plain]
#import <Foundation/Foundation.h> 
 
@interface TestDemo : NSObject 
 
- (void) callSimpleBlock; 
- (void) callTrimBlock; 
@end 

#import <Foundation/Foundation.h>

@interface TestDemo : NSObject

- (void) callSimpleBlock;
- (void) callTrimBlock;
@end
TestDemo.m

 

[plain]
#import "TestDemo.h" 
 
@implementation TestDemo 
 
 
/*************** 方法調用Block Object Start ***************/ 
void (^simpleBlock)(NSString *) = ^(NSString *paramString){ 
    /* Implement the block object here and use the paramString parameter */ 
    NSLog(@"%@",paramString); 
}; 
- (void) callSimpleBlock{ 
    simpleBlock(@"Archy"); 

/*************** 方法調用Block Object End ***************/ 
 
/*************** Block Object調用Block Object Start ***************/ 
NSString *(^trimString)(NSString *) = ^(NSString *inputString){ 
    NSString *result = [inputString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
    return result; 
}; 
                         
NSString *(^trimWithOtherBlock)(NSString *) = ^(NSString *inputString){ 
        return trimString(inputString); 
}; 
- (void) callTrimBlock{ 
        NSString *trimmedString = trimWithOtherBlock(@" Archy "); 
        NSLog(@"Trimmed string = %@", trimmedString); 

/*************** Block Object調用Block Object Start ***************/ 
 
@end 

#import "TestDemo.h"

@implementation TestDemo


/*************** 方法調用Block Object Start ***************/
void (^simpleBlock)(NSString *) = ^(NSString *paramString){
    /* Implement the block object here and use the paramString parameter */
    NSLog(@"%@",paramString);
};
- (void) callSimpleBlock{
    simpleBlock(@"Archy");
}
/*************** 方法調用Block Object End ***************/

/*************** Block Object調用Block Object Start ***************/
NSString *(^trimString)(NSString *) = ^(NSString *inputString){
    NSString *result = [inputString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    return result;
};
                       
NSString *(^trimWithOtherBlock)(NSString *) = ^(NSString *inputString){
        return trimString(inputString);
};
- (void) callTrimBlock{
        NSString *trimmedString = trimWithOtherBlock(@" Archy ");
        NSLog(@"Trimmed string = %@", trimmedString);
}
/*************** Block Object調用Block Object Start ***************/

@end
main.m

 

[plain] view plaincopyprint?int main(int argc, const char * argv[]) 

 
    @autoreleasepool { 
         
        TestDemo *test = [[TestDemo alloc] init]; 
//        [test callSimpleBlock]; 
        [test callTrimBlock]; 
    } 
    return 0; 

int main(int argc, const char * argv[])
{

    @autoreleasepool {
       
        TestDemo *test = [[TestDemo alloc] init];
//        [test callSimpleBlock];
        [test callTrimBlock];
    }
    return 0;
}
運行結果


2013-05-10 06:53:50.893 CallBlockObjectTest[591:303] Trimmed string = Archy

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.