在 Objective-C 中,代码看起来像这样,
NSInteger random = arc4random_uniform(99) + 1
NSData *data = [NSData dataWithBytes:& random length: sizeof(random)];
但是当我尝试在 Swift 中做到这一点时,
let random:NSInteger = NSInteger(arc4random_uniform(99) + 1) //(1-100)
let data = NSData(bytes: &random, length: 3)
它给了我一个错误“NSInteger 不能转换为 @lvalue inout $T1
任何帮助将不胜感激!
当您打算以这种方式将指向变量的指针作为参数发送时,该变量需要是可变的(即用var
),因为接收函数或方法将能够直接修改变量。你想要的代码是:
var random = NSInteger(arc4random_uniform(99) + 1) //(1-100)
let data = NSData(bytes: &random, length: 3)
您可以阅读有关使用的更多信息UnsafePointer<Void>
in 将 Swift 与 Cocoa 和 Objective-C 结合使用:与 C API 交互 https://developer.apple.com/library/ios/documentation/swift/conceptual/buildingcocoaapps/InteractingWithCAPIs.html#//apple_ref/doc/uid/TP40014216-CH8-XID_14.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)