1

两个问题:

  1. 是否可以从 C 函数向 C void * 发送 Objective-C 消息?
  2. <SomeProtocol>是否可以在 C 函数声明中提示 void * ?在函数体中?

(伪代码)

// myfunc.h
void myfunc(void *object, int param);

// myfunc.c
void myfunc(void *object, int param) {
    // desired (pseudocode):
    // [<SomeProtocol>(id)object method:param];
}

// objective-c controller
# include "myfunc.h"
// ....
@implementation

- (void)visible_to_outer_world {
    Object *o = [Object new];
    myfunc(o, 5);
}

// ....
@end
4

1 回答 1

5

void *是否可以从 C 函数向 a 发送 Objective-C 消息?

不知道你为什么想要它,但如果你正在编译为 Objective-C:

void bar(void *ptr)
{
    // MRC version:
    [(id)ptr someMessage];

    // ARC (alias "ugly") version:
    [(__bridge id)ptr someMessage];
}

Foo *foo = [[Foo alloc] init];
bar(foo);

是否可以在 C 函数声明中void *进行提示?<SomeProtocol>在函数体中?

不。

于 2013-02-04T20:42:59.370 回答