UIAlertViewを使ってたらdelegateを指定する方法しかなく不便だったのでちょっと探してみた

githubの star準

3つともやってることは同じようなので、BlocksKitを使ってみる 軽く使うなら他のがいい。

BlocksKit

  • 2.0から メソッドがbk_で始まることに注意
  • importの際に#import <BlocksKit/BlocksKit.h>だけでなく書く使うblockのheaderまでimportする必要がある
  • documentをみる : http://cocoadocs.org/docsets/BlocksKit/2.2.0/
// 2.0以前
#import <BlocksKit/BlocksKit.h>

// 2.0
#import <BlocksKit/BlocksKit.h>
#import <BlocksKit/BlocksKit+UIKit.h>

// または つかうものだけ
#import <BlocksKit/BlocksKit.h>
#import <BlocksKit/UIAlertView+BlocksKit.h>

variable scope

variable is not assignable missing block type specifier

block内でblock外の変数へセットするためには__blockが必要

-(void)blockSample2
{
    __block int x = 1;
    int y = 2;

    int (^block)(int, int) = ^(int a, int b){
        x = 2;
        return x * y * a * b;
    };

    int ret = block(3, 4);
    NSLog(@"ret = %d x = %d", ret, x);
}

results matching ""

    No results matching ""