在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 aJSON
file in aUITableView
. The problem comes from the initialization of myNSMutableArray
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>
相关问答
更多-
CodeIgniter 3是完整的吗?(Is CodeIgniter 3 Complete?)[2023-08-03]
更新: 版本3于2015年3月30日完成。请参阅CodeIgniter - 更改日志 原答复: 不,它没有完成。 如果是这样 - 你会在EllisLab网站上看到发布公告。 与评论中所说的相反,这并不取决于github上的待处理问题,它也没有死。 Update: Version 3 completed on March 30, 2015. See CodeIgniter - Change Log Original Reply: No, it's not finished. When it is - you' ... -
我有一个类似的本地设置(XAMPP),我有以下文件层次结构: public_html_local/ applications/ assets/ css/ styles.css ... js/ jquery.js ... images/ banner.jpg ... system/ ... 在我的配置文件中: ...
-
我们不能直接分配事件。 需要属性this.src 尝试这个:我想到了。 我的应用程序文件夹中有.htaccess文件,而不是站点的根目录。 I figured it out. I had the .htaccess file in my application folder and not at the root of the site.只需在加载视图时传递$data变量,然后在视图中的
之间回显$page_title 。 just pass the $data variable when loading the view, and then echo $page_title between in your view. 你希望你可以这样做:Codeigniter项目在本地工作,但不在线 - 找不到404页面(Codeigniter project works local but not online - 404 page not found)[2022-04-02]
我发现你应该用大写字母作为第一个字母来控制你的控制器。 改变了 main.php> Main.php 和 class main扩展CI_Controller>类Main扩展CI_Controller 解决了我的问题 I've found out that you should call your Controllers with uppercase as its first letter. Changing the main.php > Main.php and class main extends CI_ ...php - Codeigniter base_url()工作但不在其他文件中工作(php - Codeigniter base_url() working but not working in other file)[2023-11-16]
我的错误不是从控制器加载文件login.php,而是直接加载到文件.. 像这样(错误的例子):- login.php">Login
应该是这样的(正确的例子):- ">
但是应该像我这样在我的控制器中创建函 ...尝试这个: 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)