在Swift中CFStringInlineBuffer被破坏了吗?

时间:2014-12-09 14:47:09

标签: ios swift ios8.1

在Objective-C中创建CFStringInlineBuffer很简单,但Swift的语法很奇怪。我无法弄清楚如何初始化这个糟糕的东西!

以下是尝试的内容:

let str : CFStringRef = "foo" as CFStringRef
let strRange = CFRangeMake(0, CFStringGetLength(str))
var inlineBuffer : CFStringInlineBuffer
CFStringInitInlineBuffer(str, &inlineBuffer, strRange)

代码产生编译错误"变量' inlineBuffer'在它被初始化之前采取"。我尝试使用可选的修复错误:

let str : CFStringRef = "foo" as CFStringRef
let strRange = CFRangeMake(0, CFStringGetLength(str))
var inlineBuffer : CFStringInlineBuffer?
CFStringInitInlineBuffer(str, &inlineBuffer!, strRange)

但是,此代码构建时,在运行时,程序崩溃时出现"致命错误:在解包可选值时意外发现nil;#34;

CFStringInlineBuffer的文档为:

  

此结构用于CFString对象包含的字符的内联缓冲区访问。使用CFStringInitInlineBuffer函数初始化此结构的字段;不要手动完成。

https://developer.apple.com/library/mac/documentation/CoreFoundation/Reference/CFStringRef/index.html#//apple_ref/c/tdef/CFStringInlineBuffer

0 个答案:

没有答案
相关问题