2017-06-13 14 views
0

私はActionSheetPicker 3.0(https://github.com/skywinder/ActionSheetPicker-3.0)ピッカーで作業しており、ActionSheetMultipleStringPickerからの戻り値を扱う初心者の問題があります。私はコントロールを実行して、そこから値を返すことができますが、ピッカーからの戻り値を別々の変数または一緒に結合できるものに入れたいと思っています。私は数多くの例を見つけましたが、それらを動作させる方法を理解することはできません。配列を文字列に変換しますか? Swiftで

私がデバッグで見つけたと思うのは、ActionSheetMultipleStringPickerがAny?の配列を返すということです。

デバッグでは次のように表示されます。

値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) 

この版画:

オプション(「オプション(< __NSArrayI 0x60800044be20>(\ NONE、\ nMany、\のNAAAの\ n)が\ N)」)

私も試してみた:

print("\(values as! NSArray)") 

これは私が得ている最も近いです私はこれを探していた結果は次のとおりです。

( 一つ、 多く、 AAA )

誰も私は、3つの異なる文字列に分けることができるものに「値」の値を取得し、いくつかの援助を提供することができます変数?

ピッカーのための私のコードは次のとおりです。

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() 
+0

[that](https://stackoverflow.com/questions/25827033/how-do-i-convert-a-swift-array-to-a-string)または[that]の複製である可能性があります( https://stackoverflow.com/questions/40597189/character-array-to-string-in-swift) – Yonlif

+0

オプション 'values'をクリックすると、その推論型が表示されます。それは何を示していますか? – Alexander

+0

@ Yonlif、私はそれらの投稿を見ましたが、私のソリューションで動作する例を得ることができませんでした。 – Jason

答えて

0

私はこれを理解することができました。私はあることを私の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 
} 

キーラインビーイングを:fertilzerPickerを作成する

let fertilzerPicker: NSArray = values as! NSArray 

は、私は、配列の個々の要素を取得することができました。

関連する問題