我在我的Swift项目中集成了MAImagePickerController(用Objective-C编写)。库的集成是可以的,我可以构建项目。但是,在使用时,我无法设置sourceType
的属性MAImagePickerController
。以下是Swift中的代码:
let imagePicker:MAImagePickerController = MAImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .MAImagePickerControllerSourceTypeCamera
它显示错误:
键入' UnsafeMutablePointer没有 会员' MAImagePickerControllerSourceTypeCamera'
以下是枚举类型MAImagePickerControllerSourceType
typedef NS_ENUM(NSInteger, MAImagePickerControllerSourceType)
{
MAImagePickerControllerSourceTypeCamera,
MAImagePickerControllerSourceTypePhotoLibrary
};
这就是他们在Objective-C中使用它的方式:
MAImagePickerController *imagePicker = [[MAImagePickerController alloc] init];
[imagePicker setDelegate:self];
[imagePicker setSourceType:MAImagePickerControllerSourceTypeCamera];
对于Swift代码,我没有使用方法setSourceType
,因为它引用了UIImagePickerView的默认sourceType
。
答案 0 :(得分:1)
根据vadian的建议和我的观察,以下是解决方案: - 步骤1:将属性sourceType更改为普通枚举类型(不是指针 - 删除星号字符
@property MAImagePickerControllerSourceType sourceType;
- 第2步:使用vadian的回答
imagePicker.sourceType = .Camera
它只是有效。
答案 1 :(得分:0)
将ObjC枚举转移到Swift时,通常会省略整个类型前缀。
imagePicker.sourceType = .Camera