Ios UIImageController委托未声明错误
我知道这个问题被问了好几次。 但我遵循这两种方法来解决未声明的标识符self 我在.m类中声明了@interfaceIos UIImageController委托未声明错误,ios,objective-c,camera,delegates,uiimagepickercontroller,Ios,Objective C,Camera,Delegates,Uiimagepickercontroller,我知道这个问题被问了好几次。 但我遵循这两种方法来解决未声明的标识符self 我在.m类中声明了@interface 我相信您正面临这些错误,因为您是在C++/C方法中编写的。如果在objective-c方法中编写,您的问题应该得到解决 - (void)cameraCapture { UIImagePickerController *picker = [UIImagePickerController new]; picker.delegate = self; } 您可以按照以下
我相信您正面临这些错误,因为您是在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;
}
CameraCapture(1, "imgName", (__bridge void *)self);
按以下方式从Objective-C方法调用它
void cameraCapture(void* object) {
YourCurrentViewController *vc = (__bridge YourCurrentViewController *)object;
UIImagePickerController *picker = [UIImagePickerController new];
picker.delegate = vc;
}
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++方法访问<代码>自我>代码>。您需要将其传递给函数。这就是输入
void*对象的原因。void*
是一个没有关联数据类型的指针。它可以保存任何类型的地址,并且可以被类型转换为任何类型。我相信您面临这些错误,因为您是在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;
}
CameraCapture(1, "imgName", (__bridge void *)self);
按以下方式从Objective-C方法调用它
void cameraCapture(void* object) {
YourCurrentViewController *vc = (__bridge YourCurrentViewController *)object;
UIImagePickerController *picker = [UIImagePickerController new];
picker.delegate = vc;
}
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++方法访问<代码>自我>代码>。您需要将其传递给函数。这就是输入void*对象的原因。void*
是一个没有关联数据类型的指针。它可以保存任何类型的地址,并且可以类型转换为任何类型。您必须在imagepicker上声明委托方法,然后它将被解决。您为什么要用C/C++方法编写此文件?那是一个.mm文件吗?用objective-c方法编写。您的问题将得到解决您必须在imagepicker上声明委托方法,然后它将得到解决您为什么要用C/C++方法编写此文件?那是一个.mm文件吗?用objective-c方法编写。你的问题会得到正确的解决。我没有意识到这一点。但是你能解释一下如何从c/c++方法调用这个方法吗?谢谢你的回答。但我在这方面是新手,所以,我想学习这个。你对此有任何参考链接吗?我建议你阅读苹果公司关于免费桥接的文档void*
表示它指向任何对象,类似于objective-c中的id
。我建议你通过一个很棒的C++书籍和苹果的核心基础文档文档。另外,请向上投票:您需要更新您的答案,我想从c/c++方法调用objective c(ios)方法。你提到了反诗流我没有任何实物之类的东西。参考我的问题。我试过你的方法。它不起作用。(无效*对象)??正确。我没有意识到这一点。但是你能解释一下如何从c/c++方法调用这个方法吗?谢谢你的回答。但我在这方面是新手,所以,我想学习这个。你对此有任何参考链接吗?我建议你阅读苹果公司关于免费桥接的文档void*
表示它指向任何对象,类似于objective-c中的id
。我建议你通过一个很棒的C++书籍和苹果的核心基础文档文档。另外,请向上投票:您需要更新您的答案,我想从c/c++方法调用objective c(ios)方法。你提到了反诗流我没有任何实物之类的东西。参考我的问题。我试过你的方法。它不起作用。(无效*对象)??