我的问题:
This answer解释了如何将包含由空格分隔的元素的String转换为数组。
let numbers = "1 2 3 4"
let numbersArray = numbers.components(separatedBy: " ")
print(numbersArray)
// output: ["1", "2", "3", "4"]
// but I want: [1, 2, 3, 4]
但是,我正在尝试创建一个没有引号的数组,因为我正在创建一个数字数组,而不是字符串。
我的尝试:
我尝试删除numbersArray
中的所有引号,但这不起作用,因为它是数组,而不是字符串。
numbersArray.replacingOccurrences(of: "\"", with: "") // won't work
我尝试了不同的东西:我尝试将数组中的每个元素添加到一个新数组中,希望新数组不包含引号。但是我收到了一个错误:
let numbers = "1 2 3 4" // string to be converted into array without quotes
let numbersArray = numbers.components(separatedBy: " ") // convert string into array with quotes
var newNumbersArray = [String]() // new blank array (which will be without quotes)
for i in numbersArray { // for each item in the array with quotes
newNumbersArray += i // (hopefully) add the item in the new array without quotes
}
print(newNumbersArray) // print the new array
这给了我一个错误:
Swift:: Error: cannot convert value of type '[String]' to expected argument type 'inout String'
newNumbersArray += i
答案 0 :(得分:2)
您可以对调用[String]
产生的components(separatedBy:)
数组应用flatMap
调用,并在{转换闭包的正文中应用可用的init(_:radix:)
of Int
{1}} invokation:
flatMap
答案 1 :(得分:1)
你可以试试这个:
app:layout_anchor="@id/your_cover_id"
app:layout_anchorGravity="bottom|center"
答案 2 :(得分:1)
Swift 3.0
试试这个..链接方法很容易。
let temp = "1 2 3 4 5 6"
var numbers: [Int] = []
temp.components(separatedBy: " ").forEach { numbers.append(Int($0)!) }
打印(数字)// [1,2,3,4,5,6]