如何在Swift中将String类型变量转换为CFString?
发布时间:2020-12-14 04:47:20 所属栏目:百科 来源:网络整理
导读:我从iOS教程中学到了这一点,但它不起作用 func imagePickerController(picker: UIImagePickerController!,didFinishPickingMediaWithInfo info: NSDictionary!) { var mediaType = info.objectForKey(UIImagePickerControllerMediaType) as String var origi
我从iOS教程中学到了这一点,但它不起作用
func imagePickerController(picker: UIImagePickerController!,didFinishPickingMediaWithInfo info: NSDictionary!) { var mediaType = info.objectForKey(UIImagePickerControllerMediaType) as String var originalImage,editedImage,imageToUse: UIImage // Handle a still image picked from a photo album if (CFStringCompare(CFStringRef(mediaType),kUTTypeImage,0) == CFComparisonResult.CompareEqualTo) { editedImage = info.objectForKey(UIImagePickerControllerEditedImage) as UIImage originalImage = info.objectForKey(UIImagePickerControllerOriginalImage) as UIImage if (editedImage) { imageToUse = editedImage } else { imageToUse = originalImage } // Do something with imageToUse } 它经常提醒我
所以我尝试了这个: // Handle a still image picked from a photo album var temp = mediaType as CFString if (CFStringCompare(temp,0) == CFComparisonResult.CompareEqualTo) { editedImage = info.objectForKey(UIImagePickerControllerEditedImage) as UIImage originalImage = info.objectForKey(UIImagePickerControllerOriginalImage) as UIImage 它提醒我
解决方法
Swift.String和NSString自动桥接,NSString和CFString可以相互转换,但你不能(现在?)传递上从Swift字符串一直到CFString,而不需要额外的强制转换.
这是一个Swift字符串,一个接受CFString的函数,以及如何通过强制转换为NSString来调用它: var str = "Hello,playground" func takesCFString(s: CFString) {} takesCFString(str as NSString) 注意,您不需要使用CFStringRefin Swift(而且大多数CFString API的Swift声明都没有).编译器利用Xcode 5引入的CF类型的自动ARC桥接,让您可以像Swift(或ObjC)对象那样处理这些类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |