首页 \ 问答 \ 在Swift中初始化json文件的字典数组(initialize array of dictionaries for a json file in Swift)

在Swift中初始化json文件的字典数组(initialize array of dictionaries for a json file in Swift)

我刚开始使用Swift ,我想在UITableView显示解析JSON文件的结果。 问题来自我的NSMutableArray新闻的初始化,它将包含要显示的所有对象。

我有错误:

error : "/Users/******/Documents/developper/******/*******
/NewsTableViewController.swift:79:22: 'NSMutableArray?' 
does not have a member named 'count'

代码是:

import UIKit

class NewsTableViewController: UITableViewController {

var bytes: NSMutableData?

// var news: NSArray = []

var news: NSMutableArray?

override func viewDidLoad() {
    super.viewDidLoad()

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()



        // this is our remote end point (similar to URLRequest in AS3)
    let request = NSURLRequest(URL: NSURL(string: "http://mangerdulion.com/wp-content/newsInnoven.json")!)

    // this is what creates the connection and dispatches the varios events to track progression, etc.
    let loader = NSURLConnection(request: request, delegate: self, startImmediately: true)

}
func connection(connection: NSURLConnection!, didReceiveData conData: NSData!) {
    self.bytes?.appendData(conData)
}
func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
    self.bytes = NSMutableData()
}

func connectionDidFinishLoading(connection: NSURLConnection!) {

    // we serialize our bytes back to the original JSON structure
    let jsonResult: Dictionary = NSJSONSerialization.JSONObjectWithData(self.bytes!, options: NSJSONReadingOptions.MutableContainers, error: nil) as Dictionary<String, AnyObject>

    // we grab the colorsArray element
    let results: NSArray = jsonResult["newsArray"] as NSArray

    self.news?.addObjectsFromArray(results)
    /*
    // we iterate over each element of the colorsArray array
    for item in results {
        // we convert each key to a String
        var titre: String = item["titreNews"] as String
        var date: String = item["dateNews"] as String
        var contenu: String = item["contenuNews"] as String
        println("\(titre): \(date):\(contenu)")

    }
 */

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - Table view data source



override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.

    //println(self.news?.count)

    return self.news.count

}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) as UITableViewCell




    let titre: NSDictionary = self.news[indexPath.row] as NSDictionary

    cell.textLabel?.text = titre["titreNews"] as? String
    println(cell.textLabel?.text)


    // Get the formatted price string for display in the subtitle
    let contenu: NSString = titre["contenuNews"] as NSString

    cell.detailTextLabel?.text = contenu


    return cell
}

I just started using Swift and I would like to display the result of parsing a JSON file in a UITableView. The problem comes from the initialization of my NSMutableArray news which will contain all the objects to display.

I have the Error :

error : "/Users/******/Documents/developper/******/*******
/NewsTableViewController.swift:79:22: 'NSMutableArray?' 
does not have a member named 'count'

Code is :

import UIKit

class NewsTableViewController: UITableViewController {

var bytes: NSMutableData?

// var news: NSArray = []

var news: NSMutableArray?

override func viewDidLoad() {
    super.viewDidLoad()

    // Uncomment the following line to preserve selection between presentations
    // self.clearsSelectionOnViewWillAppear = false

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem()



        // this is our remote end point (similar to URLRequest in AS3)
    let request = NSURLRequest(URL: NSURL(string: "http://mangerdulion.com/wp-content/newsInnoven.json")!)

    // this is what creates the connection and dispatches the varios events to track progression, etc.
    let loader = NSURLConnection(request: request, delegate: self, startImmediately: true)

}
func connection(connection: NSURLConnection!, didReceiveData conData: NSData!) {
    self.bytes?.appendData(conData)
}
func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
    self.bytes = NSMutableData()
}

func connectionDidFinishLoading(connection: NSURLConnection!) {

    // we serialize our bytes back to the original JSON structure
    let jsonResult: Dictionary = NSJSONSerialization.JSONObjectWithData(self.bytes!, options: NSJSONReadingOptions.MutableContainers, error: nil) as Dictionary<String, AnyObject>

    // we grab the colorsArray element
    let results: NSArray = jsonResult["newsArray"] as NSArray

    self.news?.addObjectsFromArray(results)
    /*
    // we iterate over each element of the colorsArray array
    for item in results {
        // we convert each key to a String
        var titre: String = item["titreNews"] as String
        var date: String = item["dateNews"] as String
        var contenu: String = item["contenuNews"] as String
        println("\(titre): \(date):\(contenu)")

    }
 */

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - Table view data source



override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.

    //println(self.news?.count)

    return self.news.count

}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) as UITableViewCell




    let titre: NSDictionary = self.news[indexPath.row] as NSDictionary

    cell.textLabel?.text = titre["titreNews"] as? String
    println(cell.textLabel?.text)


    // Get the formatted price string for display in the subtitle
    let contenu: NSString = titre["contenuNews"] as NSString

    cell.detailTextLabel?.text = contenu


    return cell
}

原文:https://stackoverflow.com/questions/27915339
更新时间:2021-11-14 07:11

最满意答案

只需在加载视图时传递$data变量,然后在视图中的<title></title>之间回显$page_title

<title><?php echo $page_title; ?></title>

just pass the $data variable when loading the view, and then echo $page_title between <title></title> in your view.

<title><?php echo $page_title; ?></title>

相关问答

更多
  • 尝试这个: function view(){ $config = array(); $config["base_url"] = base_url() . "index.php/view_expenses/view/".$this->uri->segment(3); $config["total_rows"] = $this->emp_expenses_model->getTotalExpensesCount(); $config[" ...
  • 问题是您的代码进入这种情况并且无法在该路径中找到profile-page.php文件并显示错误。由于我检查了配置文件功能正常调用没有任何问题 if ( ! file_exists(APPPATH.'/views/'.$page.'.php')) { echo "test";die; // Load error page show_404(); } The problem is your code ent ...
  • 相关文章

    更多
  • 动态拼接JSON数组的问题
  • JSON是什么?
  • Json.Net学习笔记
  • Json.Net学习笔记
  • Swift入门视频教程-尚学堂视频教程
  • 怎么递归json嵌套json?
  • Solr: a custom Search RequestHandler
  • net.sf.json解析json对象
  • XStream处理JSON
  • 使用Gson解析Json数据
  • 最新问答

    更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)