我正在学习NSSecureCodingApple在iOS 6中引入的协议.
根据我的理解,到目前为止,只要一个类对自身的实例进行编码/解码,就应该使用它,以防止替换攻击.
我想知道在其他情况下使用它是否合适.
具体来说,如果一个类NSCoding通过编码/解码其实例变量来符合,而不是整个实例,那么它仍然是可行的NSSecureCoding吗?
假设我有一个实现NSCoding如下的类
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:self.aString forKey:@"aMeaningfulString"];
}
- (id)initWithCoder:(NSCoder *)decoder {
if((self = [super init])) {
self.aString = [decoder decodeObjectForKey:@"aMeaningfulString"];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
并且还假设没有涉及XPC.此类的实例将存储在磁盘上的plist中.
在安全方面,使用是否有任何好处,-decodeObjectOfClass:forKey:而不是
-decodeObjectForKey:?
我看不到任何方法来复制NSView并创建一个相同的NSView对象.我看到谷歌点击"使用NSData",但我不明白.
我正在使用WatchKit构建一个应用程序,并希望使用PFObjects中的数据填充一个表,但是我遇到了这个错误:
由于未捕获的异常'NSInvalidUnarchiveOperationException'终止应用程序,原因:'此解码器将只解码采用NSSecureCoding的类."PFObject"类没有采用它.
和这篇文章有同样的问题