相关疑难解决方法(0)

Obj-C++:用于识别Objective-C类的模板元函数?

使用Objective-C++,我可以编写一个C++ IsObjectiveCClass<T>模板元函数,IsObjectiveCClass<T>::value当且仅当T是Objective-C类时才是真的吗?

从语言的C/C++子集的角度来看究竟是什么是ObjC类?在C/C++上下文中使用时,MyClass*指针似乎表现得像普通的C指针; 这是否意味着MyClass也是C类型?

templates objective-c objective-c++

9
推荐指数
2
解决办法
1283
查看次数

Objective-C++块与Objective-C块

在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在此上下文中的块中定义?

objective-c++ objective-c-blocks

4
推荐指数
1
解决办法
839
查看次数