Я получаю следующие ошибки:
«String» не может быть преобразовано в «String?»
«Double» не может быть преобразовано в «Decimal»
Дата?не конвертируется в «Дата»
В следующем примере
let someArray = [
SomeBuilder.build(
someString: "someString",
someDecimal: 100,
someDate: Date.make(2018, 8, 20),
somethingElse: 0
),
SomeBuilder.build(
someString: "someString",
someDecimal: 100,
someDate: Date.make(2018, 8, 20),
somethingElse: 0
),
SomeBuilder.build(
someString: "someString",
someDecimal: 100,
someDate: Date.make(2018, 8, 20),
somethingElse: 0
)
]
struct SomeBuilder {
static func build(
someString: String?,
someDecimal: Decimal,
someDate: Date,
somethingElse: Int
) -> SomeModel {
// do something here
return SomeModel()
}
}
extension Date {
static func make(_ year: Int, _ month: Int, _ day: Int) -> Date! {
let calendar = Calendar(identifier: .gregorian)
let components = DateComponents(
calendar: calendar,
year: year,
month: month,
day: day
)
return calendar.date(from: components)
}
}
struct SomeModel {
}
Если вы добавите это как четвертый элемент в someArray
, (Это может быть случайность в реальной жизнисценарий) вы увидите одну из ошибок выше.
SomeBuilder.build(
someString: "someString",
someDecimal: 100,
someDate: Date.make(2018, 8, 20),
somethingElsse: 0
)