• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:45:10 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我是 iOS 新手。我正在尝试使用 MWFeedParser 构建一个简单的 rss 阅读器。我没有得到构建错误,模拟器弹出很好,但是模拟器没有显示 RSS 提要,但只有空白的 tableView。 我想不出有什么问题。任何帮助将不胜感激。谢谢。

//  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
    }

}



Best Answer-推荐答案


实际上,您的代码不起作用,因为您不尊重 ATS。换句话说,您的供稿是 HTTP 而不是 HTTPS。

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

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

您可以通过在 info.plist

中设置异常来解决此问题

info.plist screenshot

但考虑到 Apple 在不久的将来不会接受 ATS 异常(exception)。

关于ios - 我不知道我的代码有什么问题(带有 MWFeedParser 的 rss 阅读器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41894358/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap