pto*_*son 4 objective-c++ objective-c-blocks
在Objective-C中我有有效的代码:
TestTwo.h:
@interface TestTwo : NSObject
-(void)test;
@end
Run Code Online (Sandbox Code Playgroud)
TestTwo.m:
@implementation TestTwo
-(void)test
{
void (^d_block)(void) =
^{
int n;
};
}
@end
Run Code Online (Sandbox Code Playgroud)
我真正想要的是一个Objective-C++类,它定义了一个类似的方法test.这是简化,但说明了意图.所以,在Objective-C++中,我有:
Test.h:
class Test
{
public:
void TestIt();
};
Run Code Online (Sandbox Code Playgroud)
Test.mm:
#include "Test.h"
void Test::TestIt()
{
void (^d_block)(void) =
^{
int n;
};
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误:'int Test :: n'不是'class Test'的静态成员.
如果我删除int n;没有错误.如何n在此上下文中的块中定义?
小智 6
这是在雷达#8953986下提交的GCC错误.您可以使用Clang/LLVM 2.0+按原样编译代码,也可以将块变量放在全局名称空间(即int ::n)中并使用GCC.请注意,在这种情况下使用全局名称空间无效C++和Clang/LLVM 2.0+将无法编译它.
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |