jjzjj

ios - 在需要的初始化中有 fatalError 可以吗?(编码器 aDecoder : NSCoder) when I don't use Storyboards?

我有一个ViewController,它需要用ViewModel:NSObject初始化。我对ViewController的实现是:classViewController:UIViewController{letviewModel:ViewModelinit(withViewModelviewModel:ViewModel){self.viewModel=viewModelsuper.init(nibName:nil,bundle:nil)}requiredinit?(coderaDecoder:NSCoder){fatalError("init(coder:)hasnotbeenim

ios - -[_SwiftValue encodeWithCoder :]: unrecognized selector sent to instance

尝试使用NSCoder时出现错误Player.swift:classPlayer:NSObject,NSCoding{privatevar_playerName:String!privatevar_playerScore:Int!privatevar_playerColor:PlayerColor!//PlayerColorisanenumvarplayerName:String{get{return_playerName}set{_playerName=newValue}}varplayerScore:Int{get{return_playerScore}set{_playerSco

ios - -[_SwiftValue encodeWithCoder :]: unrecognized selector sent to instance

尝试使用NSCoder时出现错误Player.swift:classPlayer:NSObject,NSCoding{privatevar_playerName:String!privatevar_playerScore:Int!privatevar_playerColor:PlayerColor!//PlayerColorisanenumvarplayerName:String{get{return_playerName}set{_playerName=newValue}}varplayerScore:Int{get{return_playerScore}set{_playerSco

objective-c - 无法在 Swift 中使用 NSCoder 解码 Int

我正在使用带有Swift3.0的Xcode8Beta。我试图编码一个基于NSObject的简单对象,但我无法解码Int或NSInteger类型。(编码过程OK)代码classModel:NSObject,NSCoding{varseq:NSNumber?varseq2:Int?//problemwithseq2,NSIntegerisnotok,eithervarid:String?varvalue:String?overrideinit(){super.init()}requiredinit?(coderaDecoder:NSCoder){self.seq=aDecoder.deco

objective-c - 无法在 Swift 中使用 NSCoder 解码 Int

我正在使用带有Swift3.0的Xcode8Beta。我试图编码一个基于NSObject的简单对象,但我无法解码Int或NSInteger类型。(编码过程OK)代码classModel:NSObject,NSCoding{varseq:NSNumber?varseq2:Int?//problemwithseq2,NSIntegerisnotok,eithervarid:String?varvalue:String?overrideinit(){super.init()}requiredinit?(coderaDecoder:NSCoder){self.seq=aDecoder.deco

swift - 如何在 swift 中使用 NSCoder 对枚举进行编码?

背景我正在尝试使用NSCoding协议(protocol)对String样式的枚举进行编码,但在与String相互转换时遇到错误。我在解码和编码时遇到以下错误:String不能转换为Stage额外参数ForKey:在调用中代码enumStage:String{caseDisplayAll="DisplayAll"caseHideQuarter="HideQuarter"caseHideHalf="HideHalf"caseHideTwoThirds="HideTwoThirds"caseHideAll="HideAll"}classAppState:NSCoding,NSObject{

iphone - NSCoder encode Object : and encodeObject:forkey:? 有什么区别

在NSCoder中,可以调用encodeObject:和encodeObject:forkey:。这适用于许多数据类型。这些电话之间有什么区别?如何使用它们?为什么没有encodeDataObject:forkey:或encodePropertyList:forKey:? 最佳答案 键控与非键控访问器大多数情况下,您只需调用encodeSomething:forKey:方法并提供一个key,您稍后会使用该key从解码器取回值:-(void)encodeWithCoder:(NSCoder*)coder{[coderencodeObj

ios - 子类化 NSCoder,重新创建 NSArchiver

NSArchiver自OSX10.2起已弃用,并且在iOS上不可用AFAIK另一方面,NSKeyedArchiver已知缺乏速度和简洁性部分(someusers报告NSKeyedArchiver和NSArchiver之间的性能差异超过100倍)。我要归档的对象主要是NSObject包含NSMutableArray的子类的NSNumber,以及包含原始类型的对象(主要是double)。我不相信开销键控归档意味着值得。所以我决定子类NSCoder在iOS上创建一个串行编码器,风格为NSArchiver.我知道键控文件在哪里可以派上用场:向后向前兼容性和其他细节,这可能是我最终会使用的,但我

objective-c - 启用 NSCoder 的类的简单方法

我有大量的对象要保存以供离线使用。目前,我为对象和编码数据创建符合NSCoder标准的类以供离线使用。所以在.h中我介绍了对象:@interfaceMyClass:NSObject{NSNumber*myObject;}@property(nonatomic,retain)NSNumber*myObject;然后在.m中进行初始化:-(id)initWithCoder:(NSCoder*)coder{if(self=[superinit]){[selfsetMyObject:[coderdecodeObjectForKey:@"myObject"]];}}-(void)encodeWi

ios - 在 initWithCoder : what are the keys in the NSCoder (a UINibDecoder)?(用于 UIImageView)

具体来说,我正在尝试查找图像路径。这将是一件非常有用的东西,而且据我所知,没有人知道如何获得。我查看了生成的nib文件中的key,我能够在其中看到图像URL(test.jpg),但找不到获取它的key。键“UIImage”返回实际已经构建的图像(通过initWithCGImageStored:(CGImageRef)cgImagescale:(CGFloat)scaleorientation:(UIImageOrientation)orientation和神秘的UIKit函数调用GetImageAtPath调用提到的init调用),所以这没有帮助。我还尝试使用NSKeyedArchiv