私はホスティングしているウェブサイトのデータを更新するための小さなアプリを作っています。私は迅速な3で何も書いたことがないので、それは私に少し混乱している。Swift 3デバイスのデバッグ時にのみ下付き文字をあいまいに使用する
現在、私はピッカーで使用するためにサイトから名前のリストを取得していますが、私が使用しているサービスのURLを編集するという明らかな理由から、すべてのコードを理解できるはずです。
私は私の電話機(6s)と同じモデルに設定されているエミュレータで動作するこのコードを持っています、それはエミュレータでは動作しますが、私が試してみると、
let jsonResult = try JSONSerialization.jsonObject(with: myData, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject
A JSONオブジェクト:添字のあいまいな使用は、私は、シミュレータは、あなたがこれを行うには許さ方法がわからない
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var playerTextPicker: UITextField!
var pickOption = [String]()
let picker = UIPickerView()
override func viewDidLoad() {
super.viewDidLoad()
getPlayerJson()
picker.delegate = self
picker.dataSource = self
playerTextPicker.inputView = picker
}
public func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}
public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
return pickOption.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickOption[row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
playerTextPicker.text = pickOption[row]
self.view.endEditing(false)
}
func getPlayerJson(){
let players = [String]()
let url = URL(string: "http://www.test.com/test.php")
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
if error != nil{
print("Error")
}
else{
if let myData = data{
do{
let jsonResult = try JSONSerialization.jsonObject(with: myData, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject
var jsonElement: NSDictionary = NSDictionary()
for i in 0 ..< jsonResult.count
{
jsonElement = jsonResult[i] as! NSDictionary //ERRORS HERE
//the following insures none of the JsonElement values are nil through optional binding
if
let name = jsonElement["name"] as? String
{
self.pickOption.append(name)
}
}
}catch{
//print error
}
}
}
}
task.resume()
}
}
は - 'NSDictionary'を使用しないでください。 Swift辞書を使用してください。 – rmaddy