0

我在实现对象的实现中实现了 C 回调,该对象由私有框架中的函数使用,因此我无法控制传递给回调的参数。我想self从回调中使用。谢谢。

编辑:

我的对象.h/.m

#import "PrivateFramework.h"
@interface MyObject : NSObject    

-(void) start;  

@end  

void callback(void* arg1, int arg2);  
void callback(void* arg1, int arg2) {  

 /* 
   here I would like to use self (current instance of the object) but
    I can't pass a pointer to the instance in the callback since I don't
    control what is passed to it.
 */



@implementation MyObject

-(void)start {  

    // this function is inside a private framework.
    PrivateFunction(&callback);  
 }
@end
4

2 回答 2

1

几个选项:

  1. 使用单例管理流程
  2. 添加一个“类”变量(文件级静态)来保存请求实例

    static MyObject *callbackResponder = nil;

这可能会在 .m 文件中的 #imports 和 @implementation 之间进行。

于 2013-04-26T17:02:30.830 回答
0

回调的概念是创建块的目的。我会查看块编程指南。它不是 C 风格的回调,但有类似的用途。

于 2013-04-27T05:23:02.170 回答