首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不知道我的代码出了什么问题(带有MWFeedParser的rss阅读器)

我不知道我的代码出了什么问题(带有MWFeedParser的rss阅读器)
EN

Stack Overflow用户
提问于 2017-01-27 20:48:25
回答 1查看 126关注 0票数 2

我是iOS的新手。我试着用MWFeedParser构建一个简单的rss阅读器。我没有得到任何构建错误,模拟器弹出很好,但然后模拟器没有显示RSS,只有空白的tableView。我想不出哪里出了问题。任何帮助都将不胜感激。谢谢。

代码语言:javascript
复制
//  FeedTableViewController.swift
//  RssReader

import UIKit
import MWFeedParser

class FeedTableViewController: UITableViewController, MWFeedParserDelegate {

    var feedItems = [MWFeedItem]()

    func request() {

        let url = NSURL(string: "http://feeds.nytimes.com/nyt/rss/Technology")
        //creating a feedparser object
        let feedParser = MWFeedParser(feedURL: url as URL!)
        feedParser?.delegate = self
        feedParser?.parse()

    }


    // MARK: - FEED PARSER DELEGATE

    func feedParserDidStart(_ parser: MWFeedParser!) {
        feedItems = [MWFeedItem]()
    }


    func feedParserDidFinish(_ parser: MWFeedParser!) {
        self.tableView.reloadData()
    }

    func feedParser(_ parser: MWFeedParser!, didParseFeedInfo info: MWFeedInfo!) {
        print(info)
        self.title = info.title
    }

    func feedParser(_ parser: MWFeedParser!, didParseFeedItem item: MWFeedItem!) {
        feedItems.append(item)
    }



    override func viewDidLoad() {
        super.viewDidLoad()
            }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        request()

    }


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


    // MARK: - Table view data source


    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        //height for rows
        return 100
    }

    override func numberOfSections(in tableView: UITableView) -> Int {
        // return the number of sections
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // return the number of rows
        return feedItems.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)

        // Configure the cell...
        let item = feedItems[indexPath.row] as MWFeedItem   
        cell.textLabel?.text = item.title

        return cell
    }

}
EN

回答 1

Stack Overflow用户

发布于 2017-01-27 23:52:17

实际上,你的代码不工作是因为你不尊重ATS。换句话说,您的提要是HTTP格式的,而不是HTTPS格式的。

如果您打开控制台,应该会看到以下消息

应用程序传输安全已阻止明文HTTP (http://) )资源加载,因为它是不安全的。可以通过应用程序的Info.plist文件配置临时异常。

您可以通过在info.plist中设置异常来解决此问题

但考虑到Apple在不久的将来不会接受ATS例外。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41894358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档