在Swift中将整数转换为NSData

时间:2014-10-07 00:58:23

标签: ios swift nsdata

在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在$ T1内无法转换为@lvalue

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:6)

当您以这种方式将变量指针作为参数发送时,该变量需要是可变的(即,使用var声明),因为接收函数或方法将能够直接修改变量。你想要的代码是:

var random = NSInteger(arc4random_uniform(99) + 1) //(1-100)
let data = NSData(bytes: &random, length: 3)

您可以在Using Swift with Cocoa and Objective-C: Interacting with C APIs中了解有关使用UnsafePointer<Void>的更多信息。