【发布时间】:2014-10-07 00:58:22
【问题描述】:
在 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
任何帮助将不胜感激!
【问题讨论】:
-
您实际上是在哪一行得到的?第一个对我来说有点奇怪(尽管我还没有在 Swift 中做太多事情)。试试
Int而不是NSInteger -
感谢您的回复。在 Swift 中声明数据变量时出现错误。 Objective-C 的方式确实很时髦,但很有效!
-
顺便说一句
sizeof(random)可以是 4 或 8 但绝不是 3