Swift相当于Objective-C FourCharCode单引号文字(例如’TEXT’)
发布时间:2020-12-14 05:31:45 所属栏目:百科 来源:网络整理
导读:我正在尝试在 Swift中复制一些Objective C cocoa.一切都很好,直到我遇到以下情况: // Set a new type and creator:unsigned long type = 'TEXT';unsigned long creator = 'pdos'; 如何从这样的单引号字符文字创建Int64(或正确的Swift等价物)? 类型: publi
我正在尝试在
Swift中复制一些Objective C cocoa.一切都很好,直到我遇到以下情况:
// Set a new type and creator: unsigned long type = 'TEXT'; unsigned long creator = 'pdos'; 如何从这样的单引号字符文字创建Int64(或正确的Swift等价物)? 类型: public typealias AEKeyword = FourCharCode public typealias OSType = FourCharCode public typealias FourCharCode = UInt32
我在我的Cocoa Scripting应用程序中使用它,它认为字符> 0x80正确
func OSTypeFrom(string : String) -> UInt { var result : UInt = 0 if let data = string.dataUsingEncoding(NSMacOSRomanStringEncoding) { let bytes = UnsafePointer<UInt8>(data.bytes) for i in 0..<data.length { result = result << 8 + UInt(bytes[i]) } } return result } 编辑: 另外 func fourCharCodeFrom(string : String) -> FourCharCode { assert(string.count == 4,"String length must be 4") var result : FourCharCode = 0 for char in string.utf16 { result = (result << 8) + FourCharCode(char) } return result } 或者仍然很快 func fourCharCode(from string : String) -> FourCharCode { return string.utf16.reduce(0,{$0 << 8 + FourCharCode($1)}) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |