NSDebugDescription =存档期间捕获到异常:-[TCHMembers encodeWithCoder:]:无法识别的选择器已发送到实例

时间:2019-03-19 00:16:46

标签: ios swift

我正在尝试将API中的数据存储在我的NSObject类中,然后将其保存到核心数据中。响应具有一个数据类型为TCHMembers的变量,该变量为twilio类,此TCHMembers是一个NSObject类,它具有一些必须在进一步的代码中调用的方法。现在,当我尝试通过NSKeyedArchive将其存储在核心数据实体中时,该应用程序将捕获bllock并通过错误NSDebugDescription=Caught exception during archival: -[TCHMembers encodeWithCoder:]: unrecognized selector sent to instance。我如何将其存储在核心数据中,我认为数据类型给出此错误,如何存储该错误?

 let createdBy = items.twChannelObj?.createdBy
                let dateCreated = items.twChannelObj?.dateCreated
                let dateCreatedAsDate = items.twChannelObj?.dateCreatedAsDate
                let dateUpdatedAsDate = items.twChannelObj?.dateUpdatedAsDate
                let dateUpdated = items.twChannelObj?.dateUpdated
                let friendlyName = items.twChannelObj?.friendlyName
                let lastMessageDate = items.twChannelObj?.lastMessageDate
                let lastMessageIndex = items.twChannelObj?.lastMessageIndex
                let members = items.twChannelObj?.members
                let messages = items.twChannelObj?.messages
                let sid = items.twChannelObj?.sid
                let status = items.twChannelObj?.status
                let synchronizationStatus = items.twChannelObj?.synchronizationStatus
                let type = items.twChannelObj?.type
                var uniqueName = items.twChannelObj?.uniqueName
                if uniqueName == nil
                {
                    uniqueName = ""
                }

                let channelObject : ChannelObject = ChannelObject.init(createdBy: createdBy!, dateCreated: dateCreated!, dateCreatedAsDate: dateCreatedAsDate!, dateUpdatedAsDate: dateUpdatedAsDate!, dateUpdated: dateUpdated!, friendlyName: friendlyName!, lastMessageDate: lastMessageDate!, lastMessageIndex: lastMessageIndex!, members: members!, messages: messages!, sid: sid!, synchronizationStatus: synchronizationStatus!.rawValue, type: type!.rawValue, uniqueName: uniqueName!,status:status!.rawValue)
                do
                {
                    if #available(iOS 11.0, *) {
                        let dataMember = try NSKeyedArchiver.archivedData(withRootObject: channelObject, requiringSecureCoding: false)
                        user.setValue(dataMember, forKey: "twChannelObj")
                    } else {
                        // Fallback on earlier versions
                    }
                }
                catch
                {
                    print("Error \(error)")
                }

0 个答案:

没有答案