的Xcode大喊大叫錯誤初始值設定條件的結合必須有可選的類型,而不是「日期」
但我不知道發生什麼。我一直在尋找,我認爲這可能是關於鑄造和可選的。第一個給初始值設定條件的結合必須有可選的類型,而不是「日期」第二和第三給人初始值設定爲有條件的結合必須有可選的類型,而不是「雙」
for article in (topic.articleArrays ?? nil)!{
if let articleId = article.id,
let articleHeadline = article.headline,
let articleSummary = article.summary,
let articleCity = article.city,
let articleState = article.state,
let articleDateretrieved = article.dateRetrieved,
let articlePublisher = article.publisher,
let articleLatitude = article.latitude,
let articleLongitude = article.longitude,
let articleRawBaseUrl = article.rawBaseUrl,
let articleRawUrl = article.rawUrl {
editedArticles?.append(NewsArticle(id: articleId, headline: articleHeadline, publisher: articlePublisher, summary: articleSummary, rawUrl: articleRawUrl, rawBaseUrl: articleRawBaseUrl, retrieved_date: articleDateretrieved, city: articleCity, state: articleState, latitude: articleLatitude, longitude: articleLongitude))
}
}
的爲結構ediedArticles是NewsArticle我已經下面
struct NewsArticle {
var id: String
var headline: String
var publisher: String
var summary: String
var rawUrl: String
var rawBaseUrl: String
var retrieved_date: Date
var city: String
var state: String
var latitude: Double
var longitude: Double
init(id: String, headline: String, publisher: String, summary: String, rawUrl: String, rawBaseUrl: String, retrieved_date: Date, city: String, state: String, latitude: Double, longitude: Double) {
self.id = id
self.headline = headline
self.publisher = publisher
self.summary = summary
self.rawUrl = rawUrl
self.rawBaseUrl = rawBaseUrl
self.retrieved_date = retrieved_date
self.city = city
self.state = state
self.latitude = latitude
self.longitude = longitude
}
}
topic.articlesArray列出具有不同的數據結構類型,是SavedArticle(CoreData)
var articleArrays: [SavedArticle]? {
return self.articles?.allObjects as? [SavedArticle]
}
,並有SavedArticle-CoreDataClass
var dateRetrieved: Date {
get {
return retrieved_date as Date
}
set(newDate) {
retrieved_date = newDate as NSDate
}
}
// TODO: Figured it out how to stored corrdinates in [Double]
convenience init?(id: String, headline: String, publisher: String, summary: String, retrieved_date: Date, city: String, state: String, latitude: Double, longitude: Double) {
guard let context = NaberCoreDataHandler.sharedInstance.managedContext else { return nil }
self.init(entity: SavedArticle.entity(), insertInto: context)
self.id = id
self.headline = headline
self.publisher = publisher
self.summary = summary
self.dateRetrieved = retrieved_date
self.city = city
self.state = state
self.latitude = latitude
self.longitude = longitude
}
與以下
@NSManaged public var city: String?
@NSManaged public var headline: String?
@NSManaged public var id: String?
@NSManaged public var publisher: String?
@NSManaged public var rawBaseUrl: String?
@NSManaged public var rawUrl: String?
@NSManaged public var retrieved_date: NSDate
@NSManaged public var state: String?
@NSManaged public var summary: String?
@NSManaged public var latitude: Double
@NSManaged public var longitude: Double
@NSManaged public var topics: SavedTopic?
的SavedArticle-CoreDataProperties這將是真棒,如果有人能幫助我想通了什麼問題。我一整天都在爭吵,沒有任何幫助。謝謝! :)
請注意,如果數組爲零,'(topic.articleArrays ?? nil)!'仍然會導致運行時錯誤。您可能想使用'(topic.articleArrays [])'代替。 –
非常感謝! – thunpisit