Не знаю, намного ли это лучше, но вы могли бы сделать что-то вроде:
let selectFields: [iCloudSchemaFieldValue] = [
LoggerStartup.eTblTypes.tid,
LoggerStartup.eTblTypes.name,
... // add other fields you want to set here
].map {
let obj = iCloudSchemaFieldValue()
obj.setField($0)
return obj
}
Я предположил, что LoggerStartup.eTblTypes.tid
и LoggerStartup.eTblTypes.name
относятся к одному типу Int
, а iCloudSchemaFieldValue
является типом.
Теперь вам нужно всего лишь добавить еще одну строку вместо 3 каждый раз, когда вы хотите установить новое поле.
Было бы лучше, если бы вы могли отредактировать iCloudSchemaFieldValue
, чтобы добавить инициализатор, который принимает Int
. И тогда вы могли бы сделать:
let selectFields = [
LoggerStartup.eTblTypes.tid,
LoggerStartup.eTblTypes.name,
... // add other fields you want to set here
].map(iCloudSchemaFieldValue.init)