我試圖使用以下代碼採取陣列或JSON數據和組按日期的數組中的值:分組值按日期成陣列 - 不能從對象 - 橋接
func groupTrips (trips: JSON) -> [[Trip?]] {
let calendar = NSCalendar.currentCalendar()
var groupedTrips:[[Trip?]] = []
var group: [Trip] = []
for (index, tripRaw):(String, JSON) in trips {
let trip = Trip(trip: tripRaw)
if index == "0" && calendar.compareDate(trip.pickup, toDate: NSDate.init(), toUnitGranularity: .Day) != .OrderedSame {
groupedTrips.append([nil])
}
if let lastTrip = group.last {
let order = calendar.compareDate(trip.pickup, toDate: lastTrip.pickup, toUnitGranularity: .Day)
if order == .OrderedSame {
group.append(trip)
} else {
groupedTrips.append(group)
group = [trip]
}
} else {
group.append(trip)
}
}
groupedTrips.append(group)
return groupedTrips
}
當我嘗試運行代碼,我得到一個錯誤在第三到最後一行groupedTrips.append(group)
:Thead 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
而在我的控制檯,我得到fatal error: array cannot be bridged from Objective-C
。 My Trip類只是一個簡單的Swift類,它將JSON元素解析爲對象。
我真的不知道這是否是解決問題的最佳方法,但通常我會將類更改爲結構。除非你擴展/實現某些東西,並且如果你不介意它是值類型而不是引用類型,它就可以工作。 我相信你通常也可以修復它擴展NSObject,但不是那麼確定。 –
@TedHuinink:它看起來像改變到一個結構工作。如果我想使用最簡單的對象類型來包含值,可能是一個好主意。將您的評論轉換爲答案,我會將其標記爲正確。 –