Reputation: 2776
I'm integrating MAImagePickerController (written in Objective-C) in my Swift project. The integration of the library is OK and I can build the project. However, When using, I couldn't set property sourceType
of MAImagePickerController
. Following is the code in Swift:
let imagePicker:MAImagePickerController = MAImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .MAImagePickerControllerSourceTypeCamera
And it shows the error:
Type 'UnsafeMutablePointer has no member 'MAImagePickerControllerSourceTypeCamera'
Following is the declaration of enum type MAImagePickerControllerSourceType
typedef NS_ENUM(NSInteger, MAImagePickerControllerSourceType)
{
MAImagePickerControllerSourceTypeCamera,
MAImagePickerControllerSourceTypePhotoLibrary
};
And this is how they use it in Objective-C:
MAImagePickerController *imagePicker = [[MAImagePickerController alloc] init];
[imagePicker setDelegate:self];
[imagePicker setSourceType:MAImagePickerControllerSourceTypeCamera];
For Swift code, I didn't use method setSourceType
because it refers to the default sourceType
of UIImagePickerView.
Upvotes: 0
Views: 369
Reputation: 2776
Based on vadian's suggestion and my observation, following is the solution: - Step 1: Change property sourceType to normal enum type (not pointer - remove asterisk character
@property MAImagePickerControllerSourceType sourceType;
- Step 2: Use vadian's answer
imagePicker.sourceType = .Camera
And it just works.
Upvotes: 1
Reputation: 285290
When transfering ObjC enums to Swift usually the whole type prefix is omitted.
imagePicker.sourceType = .Camera
Upvotes: 0