ios - 我不知道我的代码有什么问题(带有 MWFeedParser 的 rss 阅读器)
<p><p>我是 iOS 新手。我正在尝试使用 MWFeedParser 构建一个简单的 rss 阅读器。我没有得到构建错误,模拟器弹出很好,但是模拟器没有显示 RSS 提要,但只有空白的 tableView。
我想不出有什么问题。任何帮助将不胜感激。谢谢。</p>
<pre><code>//FeedTableViewController.swift
//RssReader
import UIKit
import MWFeedParser
class FeedTableViewController: UITableViewController, MWFeedParserDelegate {
var feedItems = ()
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 = ()
}
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 as MWFeedItem
cell.textLabel?.text = item.title
return cell
}
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>实际上,您的代码不起作用,因为您不尊重 ATS。换句话说,您的供稿是 HTTP 而不是 HTTPS。</p>
<p>如果您打开控制台,您应该会看到以下消息</p>
<blockquote>
<p>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.</p>
</blockquote>
<p>您可以通过在 <code>info.plist</code></p> 中设置异常来解决此问题
<p> <a href="/image/YwAL0.png" rel="noreferrer noopener nofollow"><img src="/image/YwAL0.png" alt="info.plist screenshot"/></a> </p>
<p>但考虑到 Apple 在不久的将来不会接受 ATS 异常(exception)。</p></p>
<p style="font-size: 20px;">关于ios - 我不知道我的代码有什么问题(带有 MWFeedParser 的 rss 阅读器),我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/41894358/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/41894358/
</a>
</p>
页:
[1]