[英]Convert array to string? in Swift
我正在使用ActionSheetPicker 3.0( https://github.com/skywinder/ActionSheetPicker-3.0 )选择器,并且遇到了一个新手问题,即要使用ActionSheetMultipleStringPicker的返回值。 我已经运行了控件并可以从中返回值,但是我希望能够将选择器中的返回值放入单独的变量或可以连接在一起的对象中。 我发现了许多示例,但无法弄清楚如何使它们工作。
我想通过调试发现,我发现ActionSheetMultipleStringPicker返回了Any数组。
调试显示以下内容:
值有吗? 一些payload_data_0 Builtin.RawPointer 0x60800044fdb0 0x000060800044fdb0 - > 0x000000010dacddd8(无效*)0x000000010dacdf18:__NSArrayI payload_data_1 Builtin.RawPointer 0x335392d30 0x0000000335392d30 payload_data_2 Builtin.RawPointer 0x10d28d798 0x000000010d28d798 libobjc.A.dylib`objc_retainAutoreleasedReturnValue + 35 INSTANCE_TYPE Builtin.RawPointer 0x60800005d5c8 0x000060800005d5c8
values是选择器的返回值。
我尝试过的几件事是:
let stringText: String? = String(describing: values)
print(stringText)
打印:
可选(“ Optional(<__ NSArrayI 0x60800044be20>(\\ n一个,\\ n很多,\\ naaa \\ n)\\ n)”)
我也尝试过:
print("\(values as! NSArray)")
这是我所寻找的结果中最接近的结果:
(一个,很多,aaa)
谁能提供一些帮助,将“值”的值转换为可以分为三个不同的字符串变量的值?
我的选择器代码是:
let a = ActionSheetMultipleStringPicker.init(title: "Fertilizer Setup", rows: [
// TODO: Read values from database
["One", "Two", "A lot"],
["Many", "Many more", "Infinite"],
["aaa","sss","ccc","xxxx"]
], initialSelection: [0, 0, 0],
doneBlock: {
picker, indexes, values in
let stringText: String? = String(describing: values)
print(stringText)
print("\(values as! NSArray)")
},
cancel: {ActionMultipleStringCancelBlock in return }, origin: sender)
a?.setCancelButton(UIBarButtonItem(title: "My own title", style: UIBarButtonItemStyle.plain, target: self, action: nil))
a?.show()
我能够弄清楚这一点。 我将我的doneBlock代码更改为:
doneBlock: {
picker, indexes, values in
let fertilzerPicker: NSArray = values as! NSArray
self.row.value!.name = fertilzerPicker[0] as! String
self.row.value!.amount = fertilzerPicker[1] as! Int
self.row.value!.unitOfMeasurement = fertilzerPicker[2] as! String
}
关键是:
let fertilzerPicker: NSArray = values as! NSArray
创建fertilzerPicker使我能够获取数组的各个元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.