Man*_*uel 3 switch-statement uiimagepickercontroller swift
如何使用 switch 语句UIImagePickerControllerMediaType?
以下示例引发奇怪的编译器错误:
“CFString”类型的表达式模式无法与“CFString”类型的值匹配。
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
switch info[UIImagePickerControllerMediaType] as! CFString {
case kUTTypeImage:
break
default:
break
}
}
Run Code Online (Sandbox Code Playgroud)
我可以建议两种方法来解决这个不便。
简单,但需要额外打字。
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
switch info[UIImagePickerControllerMediaType] as! String {
case String(kUTTypeImage):
break
default:
break
}
}
Run Code Online (Sandbox Code Playgroud)
如果您需要经常开机,则更棘手,但打字更少CFString。
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
switch info[UIImagePickerControllerMediaType] as! CFString {
case kUTTypeImage:
break
default:
break
}
}
func ~=(pattern: CFString, value: CFString) -> Bool {
return pattern == value
}
Run Code Online (Sandbox Code Playgroud)
请参阅语言参考 (Swift 2.2) 的模式章节中的“表达式模式”部分。
| 归档时间: |
|
| 查看次数: |
467 次 |
| 最近记录: |