Swift相当于Objective-C FourCharCode单引号文字(例如’TEXT’)

我正在尝试在 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)})
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...