блок определяется, как показано нижепочему я должен разворачивать значение, прежде чем я использовать
// Declare block (optional)
typealias sorting = (([Schedule], [String]) -> [Schedule])?
var sortSchedule: sorting = { (schedules, sortDescription) in
var array = [Schedule]()
for string in sortDescription
{
for (index, schedule) in schedules.enumerate()
{
if string == schedule.startTime
{
array.append(schedule)
break
}
}
}
return array
}
В некоторых моментах, я вызова блока, выполнив
let allSchedules = sortSchedule?(result, sortDescription())
for schedule in allSchedules // Xcode complains at here
{
..........
}
Im используя ?
, потому что я хочу убедитесь, что, если блок существует, тогда сделайте что-нибудь. Однако Xcode жалуется на for
петли
value of optional type [Schedule]? not upwrapped, did you mean to use '!' or '?'?
Im не уверен, почему, потому что возвращаемый тип блока представляет собой массив, который может иметь 0 или более одного изделия.
Кто-нибудь знает, почему xcode жалуется.
Почему я получаю людей с нисходящими потоками? Я хотел бы знать причину этого, чтобы я мог избежать чего-то подобного в будущем. – tonytran