Tag: nscoder

NSUserDefaults,NSCoder,自定义类 – iPhone应用程序的问题

我有一个错误,我想我在做以下过程中的错误。 首先,我有一个class级联系人: @interface Contact : NSObject<NSCoding> { @private ABRecordRef ref; NSString *first; NSString *last; bool selected; NSString *phoneNumber; } 在Contact的实现中,我有: – (void)encodeWithCoder:(NSCoder *)encoder { [encoder encodeObject:first forKey:@"First"]; [encoder encodeObject:last forKey:@"Last"]; [encoder encodeObject:[NSNumber numberWithInteger: ABRecordGetRecordID(ref)] forKey:@"Ref" ]; [encoder encodeObject:first forKey:@"PhoneNumber"]; } – (id)initWithCoder:(NSCoder *)decoder { self = [[Contact alloc] init]; first = [decoder decodeObjectForKey:@"First"]; last = […]

Swift – 为什么init(编码器)在AFHTTPSessionManager中是必需的?

我在iOS开发方面不是很有经验。 AFHTTPSessionManager XCode的子类build议我包含所需的init(coder) : import UIKit let _sharedAPIManager = APIManager(baseURL: NSURL(string: API_URL)!) class APIManager: AFHTTPSessionManager { /** * Singleton service * (https://github.com/hpique/SwiftSingleton) */ class var sharedInstance : APIManager { return _sharedAPIManager } init(baseURL url: NSURL!) { super.init(baseURL: url, sessionConfiguration: nil) self.responseSerializer = AFJSONResponseSerializer() as AFJSONResponseSerializer self.requestSerializer = AFJSONRequestSerializer() as AFJSONRequestSerializer self.requestSerializer.setValue(API_KEY, forHTTPHeaderField: "X-Api-Key") self.requestSerializer.setValue("3", forHTTPHeaderField: […]

如何使用NSCoder编码/解码长期属性?

如何解码initWithCoder:的long longtypes属性initWithCoder:并在encodeWithCoder:编码encodeWithCoder:在iOS中使用NSCoder? 谢谢。

NSCoder:无法识别的select器发送到实例

所以,我是iOS新手,一直在使用在线教程来学习这个平台。 我正在使用的教程是在使用iOS 10时使用iOS 9构build应用程序。因此,我遇到了标题问题。 这里是一些代码: CalendarEvent.swift class CalendarEvent : NSObject { var title : String var dateString : String init(withTitle t : String, andDateString ds : String) { title = t dateString = ds } init(withCoder coder : NSCoder) { dateString = coder.decodeObject(forKey: "dateString") as! String title = coder.decodeObject(forKey: "title") as! String } func encodeWithCoder(coder […]

使用子视图取消UIImageView的存档

我有点疯狂试图归档和取消存档的UIImageView有一些子视图是从UIImageView派生自定义视图。 以下是我所做的: 向项目添加一个类别,以允许UIImage不符合NSCoding的事实: #import "UIImage-NSCoding.h" #define kEncodingKey @"UIImage" @implementation UIImage(NSCoding) – (id)initWithCoder:(NSCoder *)decoder { if ((self = [super init])) { NSData *data = [decoder decodeObjectForKey:kEncodingKey]; self = [self initWithData:data]; } return self; } – (void)encodeWithCoder:(NSCoder *)encoder { NSData *data = UIImagePNGRepresentation(self); [encoder encodeObject:data forKey:kEncodingKey]; } @end 我正在归档的UIImageView是我的主视图控制器的一个属性,称为“背景”。 我像这样保存它: NSData *dataToSave = [NSKeyedArchiver archivedDataWithRootObject:self.background]; [dataToSave dataWithContentsOfFile:imagePath […]

NSManagedObject是否符合NSCoding

我需要跨设备传输单个对象。 现在我正在将我的NSManagedObject转换为一个字典,归档并作为NSData发送。 收到我后,将其解压。 但我真的想通过归档和解压来传递NSManagedObject本身,而不是创build一个中间数据对象。 @interface Test : NSManagedObject<NSCoding> @property (nonatomic, retain) NSString * title; @end @implementation Test @dynamic title; – (id)initWithCoder:(NSCoder *)coder { self = [super init]; if (self) { self.title = [coder decodeObjectForKey:@"title"]; //<CRASH } return self; } – (void)encodeWithCoder:(NSCoder *)coder { [coder encodeObject:self.title forKey:@"title"]; } @end NSData *archivedObjects = [NSKeyedArchiver archivedDataWithRootObject:testObj]; NSData *objectsData […]

简单的方法来做NSCoder启用类

我有很多的对象,我想保存离线使用。 目前我使用创buildNSCoder兼容的类对象和编码数据文件可脱机使用。 所以在.h中我介绍这些对象: @interface MyClass : NSObject<NSCoding>{ NSNumber* myObject;} @property(nonatomic,retain) NSNumber* myObject; 在.m我做inits: – (id) initWithCoder: (NSCoder *)coder { if (self = [super init]) { [self setMyObject: [coder decodeObjectForKey:@"myObject"]]; } } – (void) encodeWithCoder: (NSCoder *)coder { [coder encodeObject: myObject forKey:@"myObject"]; } 所以这个类只是存储getter和setter的虚拟存储。 这里有更好的方法来解码/编码。 我可以使用@dynamic或Key-value编码进行编码和解码吗? 基本上我想在程序启动时把所有类中的variables保存到文件中并返回到对象。 这种方法工作,但创build所有类需要时间和精力。