Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将数组转换为字符串?迅速地_Arrays_String_Swift3_Actionsheetpicker - Fatal编程技术网

Arrays 将数组转换为字符串?迅速地

Arrays 将数组转换为字符串?迅速地,arrays,string,swift3,actionsheetpicker,Arrays,String,Swift3,Actionsheetpicker,我正在使用ActionSheetPicker 3.0()选择器,在使用ActionSheetMultipleStringPicker的返回值时遇到了一个新手问题。我已经让控件运行并可以从中返回值,但我希望能够将选择器的返回值放入单独的变量中,或者放入可以连接在一起的内容中。我已经找到了很多例子,但不知道如何让它们发挥作用 我认为我通过调试发现ActionSheetMultipleStringPicker返回一个Any?数组 调试显示以下内容: 有什么价值观吗?一些 有效负载数据内置.RawPoi

我正在使用ActionSheetPicker 3.0()选择器,在使用ActionSheetMultipleStringPicker的返回值时遇到了一个新手问题。我已经让控件运行并可以从中返回值,但我希望能够将选择器的返回值放入单独的变量中,或者放入可以连接在一起的内容中。我已经找到了很多例子,但不知道如何让它们发挥作用

我认为我通过调试发现ActionSheetMultipleStringPicker返回一个Any?数组

调试显示以下内容:

有什么价值观吗?一些 有效负载数据内置.RawPointer 0x60800044fdb0 0x0000680044FDB0->0x000000010DACDD8(void*)0x000000010dacdf18:\uu NSArrayI 有效负载数据内置指针0x335392d30 0x0000000335392d30 有效负载数据内置.RawPointer 0x10d28d798 0x000000010d28d798 libobjc.A.dylib`objc_retainAutoreleasedReturnValue+35 实例_类型内置.RawPointer 0x6080005D5C8 0x0000680005D5C8

values是选择器的返回值

我试过的几件事是:

let stringText: String? = String(describing: values)
print(stringText)
这张照片是:

可选(“可选((\nOne\nMany\naaa\n)\n)”

我也试过:

print("\(values as! NSArray)")
这是我得到的最接近我想要的结果,结果是:

( 一,, 许多的 aaa )

有人能帮我把“values”的值转换成我可以分成三个不同字符串变量的值吗

我的选择器代码是:

    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允许我获取数组的各个元素

可能是选项的或的副本单击
,您将看到其推断类型。它显示了什么?@Yonlif,我确实看到了那些帖子,但我无法将示例用于我的解决方案。@Alexander,Option+Click不显示类型。我得到一个弹出窗口,上面说没有快速帮助。不过我能得到这个。打印值说明:▿ 可选的▿ 一些:3个要素▿ 0:1▿ 1:很多▿ 2:aaaSo这是一个国家安全局。它是只包含字符串的
NSArray