我试图在Obj C中对NSData实现扩展方法。扩展方法调用cpp lib方法。
以下是cpp方法的方法签名:
void process(char *result) { }
这是调用cpp方法的扩展方法:
- (NSData *)PROCESS
{
uint32_t result;
process((char*)&result);
// At this point result shows 2949384954 as the value
NSData *d = [NSData dataWithBytes:&result length:sizeof(result)];
return d;
}
当我使用PROCESS
并分配返回的(NSData *)时,我收到一个EXC_BAD_ACCESS错误。我确定这与指针或引用的不当使用有关,但我无法弄明白。提前谢谢。
答案 0 :(得分:0)
以下代码的代码工作正常:
uint32_t result = 2949384954;
NSData *d = [NSData dataWithBytes:&result length:sizeof(result)];
NSLog(@"d: %@", d);
NSLog输出:
d: <fa0accaf>
调用方法的方式可能存在问题。
返回“扩展方法”。你是什么意思?只需将其作为一个函数添加为类的方法。