EXC_BAD_ACCESS uint32_t

EXC_BAD_ACCESS uint32_t

本文关键字:uint32 BAD EXC ACCESS      更新时间:2023-10-16

我试图在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错误。我确信这与指针或引用的使用不当有关,但我就是想不出来。

下面的代码运行正常:

uint32_t result = 2949384954;
NSData *d = [NSData dataWithBytes:&result length:sizeof(result)];
NSLog(@"d: %@", d);

NSLog输出:

d: <fa0accaf>  

调用方法的方式可能有问题。

返回"扩展方法"。你这话是什么意思?只需将其作为函数添加到类中作为方法。