最佳答案
我相信您遇到这些错误是因为您是在 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*
是一个没有关联数据类型的指针。它可以保存任何类型的地址,并且可以类型转换为任何类型。
关于Ios UIImageController 委托(delegate)未声明的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42172454/