答案 0 :(得分:1)
我相信您正面临着这些错误,因为您是在C ++ / C方法中编写的。如果你在objective-c方法中编写它,你的问题应该得到解决。
- (void)cameraCapture {
UIImagePickerController *picker = [UIImagePickerController new];
picker.delegate = self;
}
您可以通过以下方式在C / C ++方法中编写它。
void cameraCapture(void* object) {
YourCurrentViewController *vc = (__bridge YourCurrentViewController *)object;
UIImagePickerController *picker = [UIImagePickerController new];
picker.delegate = vc;
}
以下列方式从Objective-C方法调用它。
CameraCapture(1, "imgName", (__bridge void *)self);
从C / C ++方法调用Objective-C方法。
void CameraCapture(long cCameraClient, const char *imgName, void* object) {
SATController *vc = (__bridge SATController *)object;
UIImagePickerController *picker = [UIImagePickerController new];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.allowsEditing = YES;
[self presentModalViewController:picker animated:YES];
}
此外,您无法从C ++方法直接访问self
。你需要将它传递给函数。这就是输入void *object
的原因。 void*
是一个没有关联数据类型的指针。它可以保存任何类型的地址,并且可以对任何类型进行类型转换。