斯威夫特镜子yapısı
Objective-C ile kod yazarkençokkullandığım地幔diye birkütüphanevardı。 披风说说模型objelerimioluştururkenuyarlamak zorundakaldığım-initWithCoder:-encodeWithCoder:gibimetodlarıbenim yerime otomatikoluşturuyordu。 Bir ekstraözelliğiis objenintümdeğerlerinigüzelbirşekildebasacakşekilde-描述metodunu otomatikdoldurmasıydı。 Böylecekodda debug yaparken herhangi bir Mantle iletanımlanmışobjenindescription’ınıdebug console’abastığımda,tümobjenindetayınıgörebiliyordum:
Swift ile birlikte模型对象Mantlekullanmayıbıraktım,zira Mantle sadece NSObject olan objelerüzerindeçalışabiliyordu。 Kendi定制objelerimioluşturuyordum。 Swift’te bir objeninkarşılığınıbasmakiçin描述样式,名称和名称CustomStringConvertibleprotokolünüekleyerekyapıyordum。 Bu protokol mutlaka bir描述değerikoymayızorunlukılıyordu。 Burada ise tek tektümdeğerleriELLE basacakşekildeyazıyordum,bu daçokzamanalıyordu:
“ Bunun kolay bir yoluolmalı” diyedüşünüparaştırdımamabulamadım。 Belki deyanlışşekildearadımbilemiyorum。 达哈·索纳(Switzerland)Swift标准图书馆dokümantasyonunabakarken Mirror diye bir struct’arastladım:
镜像对象,枚举,元组,struct da ya koleksiyonu varsa hepsine isim vedeğerolarakulaşmanızısağlıyor。 房地产(物业)varsabunlarıliste olarakdeğerleriile birlikte konsola yazabiliyoruz。 镜像struct’ıdeğerolarak任何aldığındansadece classlardeğil,struct,tuple,enum,hatta fonksiyonlar ile胆Mirror’ıkullanabilirz。 Ayrıca镜像调试器和运动场调试器console’dagüvenlekullanabiliriz。
Öncebir objenin Mirror halinioluşturuyorum:
let mirrorSelf = Mirror(反射:)
Sonra bu mirrorSelf’in儿童değerineulaşıptümözelliğivedeğerlerialabiliyoruz。
适用于镜子中的儿童Self.children {
print((child.label ??“”)+“:” +字符串(描述:child.value))
}
Dahaönceelleyazdığımmetodumu buşekildedeğiştiriyorum:
可以说调试了ileile调试器。
Bu medtodu isterseniz Generic’leri kullanaraktümmodellerinizeuyarlayın,姐姐protokol olaraktümmodellerinize ekleyin,大小kalmış。
镜像struct’ı,CustomReflectableprotokolüneuyantümtiplerialgılayabiliyor。 谭listeaşağıda。
斯威夫特标准图书馆(Swift Standard Library’deokuduğum),图书目录。 Bir sonrakiyazıdagörüşmeküzere。
NSIstanbulyayınınaaboneolmayı,bizi takip etmeyiunutmayın🙂
伊斯坦布尔
由NSIstanbul成员 medium.com 填写的出版物