alibaba / HandyJSON

A handy swift json-object serialization/deserialization library
Other
4.22k stars 615 forks source link

使用xcode 13 beta3 在ios15系统上跑必崩溃 #445

Open wendeqiang opened 2 years ago

zhazhaDan commented 2 years ago

遇到了同样的问题,坐等解决办法

image

burning-git commented 2 years ago

通遇到 0 libswiftCore.dylib 0x00000001856fdfd0 swift::TargetMetadata::isCanonicalStaticallySpecializedGenericMetadata() const + 204 (Metadata.h:1265) 1 libswiftCore.dylib 0x000000018570a428 swift_checkMetadataState + 44 (Metadata.cpp:5459) 2 libswiftCore.dylib 0x000000018572c6ac getSuperclassForMaybeIncompleteMetadata(swift::TargetMetadata const, swift::runtime::llvm::Optional) + 252 (ProtocolConformance.cpp:152) 3 libswiftCore.dylib 0x000000018572bc40 swift_conformsToProtocolImpl(swift::TargetMetadata const, swift::TargetProtocolDescriptor const*) + 276 (ProtocolConformance.cpp:219) 4 HandyJSON 0x0000000105e54454 dynamic_cast_existential_1_conditional + 16 (:0) 5 HandyJSON 0x0000000105e54454 Metadata.Class.superclass.getter + 24 (Metadata.swift:153) 6 HandyJSON 0x0000000105e54454 Metadata.Class.genericArgumentVector.getter + 24 (Metadata.swift:174) 7 HandyJSON 0x0000000105e54454 Metadata.Class._propertyDescriptionsAndStartPoint() + 512 (Metadata.swift:196) 8 HandyJSON 0x0000000105e548a8 Metadata.Class.propertyDescriptions() + 36 (Metadata.swift:214) 9 HandyJSON 0x0000000105e49868 static _ExtendCustomModelType._transform(dict:to:) + 100 (ExtendCustomModelType.swift:138) 10 HandyJSON 0x0000000105e497c0 static _ExtendCustomModelType._transform(dict:) + 264 (ExtendCustomModelType.swift:132) 11 HandyJSON 0x0000000105e47c20 static JSONDeserializer.deserializeFrom(dict:designatedPath:) + 220 (Deserializer.swift:78) 12 HandyJSON 0x0000000105e47b28 static HandyJSON.deserialize(from:designatedPath:) + 76 (Deserializer.swift:33)

lynnleelhl commented 2 years ago

develop 分支先尝试一下能否解决

burning-git commented 2 years ago

分支先尝试一下能否解决

develop 已经做了修改?

burning-git commented 2 years ago

develop 没问题,不崩溃。能发正式版本吗

pathfinder1989 commented 2 years ago

把这句代码替换了应该就可以 if !(superclass is HandyJSON) && !(superclass is HandyJSONEnum) { // if !(superclass is HandyJSON.Type) && !(superclass is HandyJSONEnum.Type) {

chenjc0317 commented 2 years ago

俺也一样,希望尽快解决下。

chenshipeng commented 2 years ago

风险这么大吗?都不敢用了

xusion commented 2 years ago

更新了iOS15 beta4 这个问题就不存在了

cleexiang commented 2 years ago

把这句代码替换了应该就可以 if !(superclass is HandyJSON) && !(superclass is HandyJSONEnum) { // if !(superclass is HandyJSON.Type) && !(superclass is HandyJSONEnum.Type) {

如果这么改,在有子类集成的情况下,会导致子类model解析数据失败