问题标签 [nssecurecoding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - NSTextAttachment 子类不支持安全编码,因为它覆盖了 -initWithCoder: 并且不覆盖 +supportsSecureCoding
我正在尝试将带有 textAttachments 的 NSAttributedString 保存到核心数据。
为此,我需要将其转换为核心数据不再接受NSKeyedUnarchiver
:
转换器要求所有被转换的东西都符合NSSecureCoding
.
这工作正常,但我在添加附件时使用 NSTextAttachment 的自定义子类:
这会产生以下错误:
无法读取数据,因为它的格式不正确。, ["NSUnderlyingError": Error Domain=NSCocoaErrorDomain Code=4864 "类 'Noah.ImageAttachment' 有一个支持安全编码的超类,但是 'Noah.ImageAttachment '覆盖 -initWithCoder: 并且不覆盖 +supportsSecureCoding。该类必须实现 +supportsSecureCoding 并返回 YES 以验证其 -initWithCoder: 的实现是否符合安全编码。UserInfo={NSDebugDescription=类 'Noah.ImageAttachment' 有一个支持安全编码的超类,但 'Noah.ImageAttachment' 覆盖 -initWithCoder: 并且不覆盖 +supportsSecureCoding。该类必须实现 +supportsSecureCoding 并返回 YES 以验证其 -initWithCoder: 的实现是否符合安全编码。}]
我尝试按照指示添加
然而,这给出了一个错误initWithCoder
线程 1:EXC_BAD_ACCESS(代码=2,地址=0x7ffee12f7ffc)
谁能帮我修复initWithCoder
nscoding - NSSecureCoding 为正确保存的对象返回 nil
我使用的是 macOS 10.15 (bigSUr)、XCode 12、objective-c 而不是 ios。
我有基于文档的应用程序。它有一个简单的对象“SHGlobalAppData”(NSObject),其中包含自定义类“SHSetupDataModel”(NSObject)的属性对象。
加载时,initWithCoder 为保存的值返回 nil。为什么?
这是实现:
我使用 NSSecureCoding,因此 SHSetupDataModel 和 SHGlobalAppData 都包含了适当的类方法
使用安全编码在 NSDocument 中完成保存
储蓄是如何进行的
说到保存,这是 SHGlobalAppData 的代码
上述节省顺利进行。测试很好。
加载是如何完成的
现在在加载保存的文件时,会调用以下 NSDocument 方法:
这会调用 SHGlobalAppData 形式的 initWithCoder 方法 - 我得到一个 nil 结果
任何人都可以请帮助我为什么这是返回零?或者引导我进行更有效的调试?
objective-c - 为什么 NSNumber(s) 的 NSArray 无法解码?
我有一个符合NSSecureCoding
. 我正在尝试对其数据进行编码,将其写入文件并对其进行解码。该类包含一个数组,我在编码之前int
将其转换为NSArray
填充元素。NSNumber
当我解码数组时,decodeObjectForKey
返回nil
. 此外,当我将编码数组写入文件时,plist 看起来不正确。例如,它的结构中没有“key_for_ns_array”键。
这是我的代码的简化版本:
如果您对整个 int 数组到 ns 数组的转换感到好奇……那是因为我更喜欢用 C++ 编写。我对objective-c不是很有经验,所以我只在需要弥合我的游戏和iOS之间的差距时才写它。在这种情况下, s_my_data 是两者之间共享的类型。
nskeyedarchiver - NSSecureCoding:将 UIView 写入磁盘
是否可以使用 NSSecureCoding 将 UIView 写入磁盘。下面的代码会导致错误。
错误:无法写入数据,因为它的格式不正确。
我们还尝试了以下方法:
错误:此解码器将仅解码采用 NSSecureCoding 的类。'UIView' 类不采用它。
ios - 使用 NSTextAttachment 时使用 NSKeyedUnarchiver 在 iOS13 上取消归档 NSAttributedString 时出错
我存档了一个NSAttributedString
,其中包含NSTextAttachment
在 iOS14 上的图像,并注意到在 iOS13 上取消存档失败。在 iOS14 上,解压成功。
记录的错误是这样的:
有没有办法让它发挥作用,还是我注定要在这里?
这是将图像插入NSMutableAttributedString
using的方式NSTextAttachment
:
这是归档行:
这是取消归档的行,它返回一个NSError
实例:
我NSData
在 iOS14 上创建实例,将其存储到文件中并在 iOS13 中读取。这是它失败的时候。
swift - Swift NSSecureCoding 在展开时意外发现 nil
我在 CoreData 中存储了一个可转换对象,并试图使其符合 NSSecureCoding 标准,但是当我尝试解码时,在展开可选值时,我一直意外发现 nil
在 XCDataModel 中,我将属性设置为可转换并使用自定义类 AssignedExerciseObjects,我还将转换器设置为 AssignedExerciseObjectsValueTransformer
我还在我的 CoreData 堆栈中注册了转换器
这是我的变压器的副本
这是我的自定义课程的副本
这就是它给我错误的地方
我对 swift 还很陌生,但我一生都无法弄清楚为什么它返回 nil 值?
创建记录时,一切似乎都可以正常工作,但是当我尝试在表格中显示记录时,出现错误
任何帮助是极大的赞赏
问候
杰米
swift - SwiftUI:在 macOS 12 Monterey 上更改了粘贴板拖动?
我正在尝试在 SwiftUI 中执行基本的拖放操作到 NSTextView,但在 macOS 12 beta 中发生了一些变化,虽然此代码在 macOS 11 上运行良好,但它不再适用:
在 macOS 12 beta 上,调用 pboard.readObjects(...) 时,尝试将项目拖入 NSTextView 时出现此错误:
我注意到既不是supportsSecureCoding
也不encode(with aCoder: NSCoder)
是 macOS 12,而是在 macOS 11 上。
macOS 12 中是否有关于 NSCoding 或 NSSecureCoding 的任何更改,或者这只是一个错误?
nsobject - NSKeyedUnarchiver _warnAboutNSObjectInAllowedClasses 错误日志在 iOS 控制台日志错误
- 在模拟器或真实设备上运行我的 iOS 应用程序
- 在 MAC 中打开 Console.app
- 强制退出并重新启动应用程序
- 检查日志
我看到这个日志显示为“故障”,但我不知道它来自哪里,我也找不到来自 Apple 的任何信息。有没有人见过这个错误?我应该从哪里开始调试它?它甚至意味着什么?请大家帮忙谢谢!!!
*** -[NSKeyedUnarchiver _warnAboutNSObjectInAllowedClasses]: NSSecureCoding allowed classes list contains [NSObject class], which bypasses security by allowing any Objective-C class to be implicitly decoded. Consider reducing the scope of allowed classes during decoding by listing only the classes you expect to decode, or a more specific base class than NSObject. This will be disallowed in the future.