arrayWIthObjects的Swift等效方法是什么?

5

这是Obj C语言:

NSArray *arr = [NSArray arrayWithObjects:kLMEnglish,nil];

有人能告诉我这行代码在Swift中的等效写法吗?
3个回答

12

这个怎么样?

let arr = [kLMEnglish]

在 ObjC 中你也可以这样写:

NSArray *arr = @[kLMEnglish];

不是这样,我自己找到了解决办法,应该像这样写: var array: NSArray? = NSArray(object: kLMEnglish) 谢谢。 - Labinot Bajrami
为什么我的建议没有起作用?你试过这个吗:var arr = [kLMEnglish] - sergio
我没有尝试你的建议,因为我找到了解决方案,所以感谢你的工作。 :) - Labinot Bajrami
2
重点是,@sergio的版本是惯用的方法。尽管被接受的答案可以编译,但你不应该使用它(在风格上是主观的,但有一个原因它被大量投票支持:) - Airspeed Velocity

11

尝试这段代码:

var myVar1: Int = 50
var myVar2: Int = 50

var array: NSArray? = NSArray(objects: myVar1,myVar2)

1
在Swift中,您可以像这样使用数组:

let array: NSArray = [kLMEnglish]     

var array:NSArray! = [kLMEnglish]

var arrayMutable = [kLMEnglish] as NSArray
let arrayImmutable = [kLMEnglish] as NSArray


var array = [kLMEnglish]

// if it is String
var array: [String] = [kLMEnglish]

// if it is Integer
var array:[Int] = [kLMEnglish] 

如果一行开头以var开头,这意味着变量,并且允许将来更改数组的内容
如果一行开头以let开头,这意味着常量,并且意味着内容不能在将来更改

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接