【发布时间】:2017-06-13 16:26:08
【问题描述】:
我正在使用 ActionSheetPicker 3.0 (https://github.com/skywinder/ActionSheetPicker-3.0) 选择器,并且在使用 ActionSheetMultipleStringPicker 的返回值时遇到了新手问题。我已经让控件运行并且可以从中返回值,但我希望能够将选择器的返回值放入单独的变量中,或者放入我可以连接在一起的东西中。我找到了很多例子,但不知道如何让它们工作。
我认为我通过调试发现的是 ActionSheetMultipleStringPicker 返回了一个 Any? 数组。
调试显示如下:
价值观 任何?一些 payload_data_0 Builtin.RawPointer 0x60800044fdb0 0x000060800044fdb0 -> 0x000000010dacddd8 (void *)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)
打印出来:
可选("可选(<__nsarrayi>(\n一个,\n很多,\naaa\n)\n)")
我也试过了:
print("\(values as! NSArray)")
这是我得到的最接近我正在寻找的结果:
( 一, 许多, 啊啊啊 )
任何人都可以提供一些帮助,将“值”的值转换为我可以分成三个不同的字符串变量的东西吗?
我的选择器代码是:
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()
【问题讨论】:
-
选项点击
values,你会看到它的推断类型。它显示了什么? -
@Yonlif,我确实看到了这些帖子,但我无法让示例与我的解决方案一起使用。
-
@Alexander,Option + Click 不显示类型。我收到一个弹出窗口,显示没有快速帮助。我能够得到这个。值的打印描述: ▿ Optional
▿ some : 3 个元素 ▿ 0 : One ▿ 1 : Many ▿ 2 : aaa -
所以它是一个NSArray。是只包含字符串的
NSArray吗?
标签: arrays string swift3 actionsheetpicker