【发布时间】:2015-03-31 08:31:28
【问题描述】:
我想将我的 xcode 应用程序连接到在线数据库并从中获取数据并显示在我的应用程序中 + 使用我的应用程序将数据写入在线数据库。我已经完成了应用程序,但现在它给了我一个错误。
错误:
我的网页中有我的在线数据库,并且我已将两个 php 文件上传到我网站的文件管理器中。一个 php 文件检索我数据库中的所有数据并将它们编码为 json。第二个 php 文件执行查询以从我的应用程序将数据写入我的在线数据库。
如上图所示,我成功地获得了 json 输出,但是当我尝试将数据放入 xcode 中的数组时,它给了我这个错误。
这是我的代码
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var tableview: UITableView!
@IBOutlet var inputFriendName: UITextField!
@IBOutlet var inputFriendInfo: UITextField!
var data: NSArray = []
override func viewDidLoad() {
super.viewDidLoad()
data = dataOfJson("http://bishanonline.com/extra/serviceselect.php")
println(data)
}
@IBAction func reload() {
data = dataOfJson("http://bishanonline.com/extra/serviceselect.php")
self.tableview.reloadData()
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.view.endEditing(true)
}
func dataOfJson(url: String) -> NSArray {
var data = NSData(contentsOfURL: NSURL(string: url)!)
return (NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil) as NSArray)
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: additionInfoCell = self.tableview.dequeueReusableCellWithIdentifier("customCell") as additionInfoCell
var maindata = (data[indexPath.row] as NSDictionary)
cell.friendName!.text = maindata["Name"] as? String
cell.friendInfo!.text = maindata["Additional Info"] as? String
return cell
}
@IBAction func uploadToDatabase() {
var url: NSString = "http://bishanonline.com/extra/servicequery.php?x=\(inputFriendName.text)&y=\(inputFriendInfo.text)"
url = url.stringByReplacingOccurrencesOfString(" ", withString: "%20")
url = url.stringByReplacingOccurrencesOfString("/n", withString: "%0A")
var data = NSData(contentsOfURL: NSURL(string: url)!)
var result = NSString(data: data!, encoding: NSUTF8StringEncoding)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
问题出在此代码行中
func dataOfJson(url: String) -> NSArray {
var data = NSData(contentsOfURL: NSURL(string: url)!)
return (NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil) as NSArray)
}
请帮我将 json 数据放入数组中。感谢任何帮助。
【问题讨论】:
-
您的网站没有在浏览器中打开。请解决然后评论我会在您网站的链接测试后给您代码
-
@Johnny 这里是正确的链接bishanonline.com/extra/serviceselect.php bishanonline.com/extra/servicequery.php 抱歉链接我也更新了代码。感谢任何帮助。
-
这是我在 xcode 中得到的响应。如您所见,其中有一些额外的脚本文件,请删除它以便只打印 json 响应。可选([{"Name":"Bishan","Additional Info":"MainDeveloper"},{"Name":"AkilaPrabath","Additional Info":"BestBuddy"}] )
-
删除这个 ;
-
@Johnny 在我的 php knw 中没有这样的代码行!
标签: ios mysql json xcode swift