0

json の結果からテーブルビューを作成するのに苦労しています。私のコードは次のとおりです(申し訳ありませんが、最初の2行をコードとして配置したくないようです:/):

UIKitのインポート

クラスViewController:UIViewController、UITableViewDelegate、UITableViewDataSource {

override func viewDidLoad()
{
    super.viewDidLoad()

    let url = NSURL(string: "http://api.football-data.org/alpha/soccerseasons/354/teams")
    let data = NSData(contentsOfURL: url!)
    let json = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil) as NSDictionary

    let teamsArray = json["teams"] as NSArray

    print("Team List : \(teamsArray)")

    for dic in teamsArray
    {
        let teamname = dic["name"] as NSString

        let code = dic["code"] as NSString

        println("Team Name, \(teamname) : Code, \(code)")
    }

    //        self.tableViewObject.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}

@IBOutlet weak var tableViewObject: UITableView!




func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    return teamsArray.count
}



func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell:UITableViewCell=UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "mycell")
    cell.textLabel!.text = teamsArray[indexPath.row]


    return cell
}

}

「未解決の識別子 'teamsArray' を 2 回使用しています。最初に:

teamArray.count を返す

そして、次の場所で:

cell.textLabel!.text = teamArray[indexPath.row]

上記のエラーを解決したり、正しい方向に向けたりして、JSONをテーブルビューにリンクするのを手伝ってくれませんか。

テーブルビューのヒントなしで空白のビューでコードを使用すると、コンソールで完璧な結果が得られることに注意してください。

    let url = NSURL(string: "http://api.football-data.org/alpha/soccerseasons/354/teams")
    let data = NSData(contentsOfURL: url!)
    let json = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil) as NSDictionary

    let teamsArray = json["teams"] as NSArray

    print("Team List : \(teamsArray)")

    for dic in teamsArray
    {
        let teamname = dic["name"] as NSString

        let code = dic["code"] as NSString

        println("Team Name, \(teamname) : Code, \(code)")
    }

私はstackoverflowが初めてで、以前の質問は具体的ではないと言われました。これがまだ曖昧すぎる場合はお知らせください。改善を試みます。

どうもありがとう、アラン。

4

1 に答える 1

1

このようにして...

  import UIKit

class ViewController:   UIViewController,UITableViewDelegate,UITableViewDataSource {

 @IBOutlet weak var tableViewObject: UITableView!
 var teamsArray = NSArray()
 override func viewDidLoad()
{
super.viewDidLoad()

self.tableViewObject.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")

let url = NSURL(string: "http://api.football-data.org/alpha/soccerseasons/354/teams")
let data = NSData(contentsOfURL: url!)
let json = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil) as NSDictionary

teamsArray = json["teams"] as NSArray

print("Team List : \(teamsArray)")

self.tableViewObject.reloadData()

for dic in teamsArray
{
    let teamname = dic["name"] as NSString

    let code = dic["code"] as NSString

    println("Team Name, \(teamname) : Code, \(code)")
}


}




func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return teamsArray.count
}



 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{

let cell:UITableViewCell=UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "mycell")
cell.textLabel!.text = self.teamsArray.objectAtIndex(indexPath.row).objectForKey("name") as? NSString


return cell
}
于 2015-04-08T10:33:45.497 に答える