Objective-C中的块和对象

Obj*_*der 1 lambda xcode function objective-c objective-c-blocks

我已经开始学习如何在Objective-C中使用块/函数/ lambda.但我不能让它与Objects一起工作.可能我错过了一些指针,但是它不起作用.这是我目前的代码:

MyEventArgs (^skapaEventArg)(Operation); 
skapaEventArg = ^(Operation a) { return *[[MyEventArgs alloc] initWithOperation:a]; };
MyEventArgs *a = skapaEventArg(Add);
Run Code Online (Sandbox Code Playgroud)

但是我得到了这张照片显示的错误:

http://img18.imageshack.us/img18/7499/blocksab.png

如果我做

MyEventArgs a = skapaEventArg(Add);
Run Code Online (Sandbox Code Playgroud)

把它放在堆栈上,Xcode给了我通常的"接口不能静态分配" - 错误

如何使用块来使这个简单的代码工作?

Dar*_*ust 6

它应该是:

MyEventArgs *(^skapaEventArg)(Operation); 
skapaEventArg = ^(Operation a) { return [[MyEventArgs alloc] initWithOperation:a]; };
MyEventArgs *a = skapaEventArg(Add);
Run Code Online (Sandbox Code Playgroud)

请注意*第一行中的内容,以及第二行中缺少的内容.