Swift:如何从NSScanner中获取AutoreleasingUnsafePointer <NSString?>的值?

Zax*_*nov 4 macos cocoa ios swift

我不知道如何使用AutoreleasingUnsafePointer.我有以下代码:

var myString: AutoreleasingUnsafePointer<NSString?>

myScanner.scanUpToCharactersFromSet(NSCharacterSet.newlineCharacterSet(), intoString: myString)
Run Code Online (Sandbox Code Playgroud)

现在,我该怎么做才能从'myString'中获取字符串?我知道它可以是零,但我不知道如何得到字符串值,以防它不是零.Swift展开技术仅适用于Optional类型.

谢谢!

das*_*ght 5

如果第二个参数scanUpToCharactersFromSet被声明为自动释放不安全指针,即AutoreleasingUnsafePointer<NSString?>你应该能够在不明确指针的情况下调用你的函数.Swift允许您&NSString?变量使用运算符来生成自动释放的不安全指针,如下所示:

var str : NSString? = nil
myScanner.scanUpToCharactersFromSet(NSCharacterSet.newlineCharacterSet(), intoString:&str)
Run Code Online (Sandbox Code Playgroud)

这将使您str成为"普通"可选项NSString,您可以使用常规展开运算符解包.