`
zcw_java
  • 浏览: 297189 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ios序列化对象存储本地

阅读更多
#import <Foundation/Foundation.h>

@interface WeiboUserInfo : NSObject<NSCoding>
{
    NSString *m_strDeviceJid;     //绑定的设备的jid
    NSString *m_strSinaJid;       //sina帐号的jid
    NSString *m_strSinaPasswd;    //sina帐号密码
    NSString *m_strNickName;      //sina帐号的昵称
    NSString *m_strSinaBrief;         //sina个性签名
    
    NSString *m_strAccessToken;     //sina accessToken
    NSDate *m_strExpirationDate;  //accessToken 到期时间
    
    NSData *m_imgPortraitSmall;     //头像数据(小图片)
    NSData *m_imgPortraitMid;       //头像数据(中图片)
    NSData *m_imgPortraitLarge;     //头像数据(大图片)
}

@property (nonatomic, copy) NSString *m_strDeviceJid;
@property (nonatomic, copy) NSString *m_strSinaJid;
@property (nonatomic, copy) NSString *m_strSinaPasswd;
@property (nonatomic, copy) NSString *m_strSinaBrief;
@property (nonatomic, copy) NSString *m_strNickName;
@property (nonatomic, copy) NSString *m_strAccessToken;
@property (nonatomic, retain) NSDate *m_strExpirationDate;

@property (nonatomic, retain) NSData *m_imgPortraitSmall;
@property (nonatomic, retain) NSData *m_imgPortraitMid;
@property (nonatomic, retain) NSData *m_imgPortraitLarge;

@end


#import "WeiboUserInfo.h"

@implementation WeiboUserInfo
@synthesize m_strDeviceJid;     //绑定的设备的jid
@synthesize m_strSinaJid;       //sina帐号的jid
@synthesize m_strSinaPasswd;    //sina帐号密码
@synthesize m_strNickName;      //sina帐号的昵称
@synthesize m_strSinaBrief;

@synthesize m_strAccessToken;     //sina accessToken
@synthesize m_strExpirationDate;  //accessToken 到期时间

@synthesize m_imgPortraitSmall;     //头像数据(小图片)
@synthesize m_imgPortraitMid;       //头像数据(中图片)
@synthesize m_imgPortraitLarge;     //头像数据(大图片)

- (void)dealloc
{
    [m_strDeviceJid release];
    [m_strSinaJid release];
    [m_strSinaPasswd release];
    [m_strNickName release];
    [m_strSinaBrief release];
    
    [m_strAccessToken release];
    [m_strExpirationDate release];
    
    [m_imgPortraitSmall release];
    [m_imgPortraitMid release];
    [m_imgPortraitLarge release];
    
    [super dealloc];
}

//将对象编码(即:序列化)
-(void) encodeWithCoder:(NSCoder *)aCoder
{
    [aCoder encodeObject:m_strDeviceJid forKey:@"m_strDeviceJid"];
    [aCoder encodeObject:m_strSinaJid forKey:@"m_strSinaJid"];
    [aCoder encodeObject:m_strSinaPasswd forKey:@"m_strSinaPasswd"];
    [aCoder encodeObject:m_strNickName forKey:@"m_strNickName"];
    [aCoder encodeObject:m_strSinaBrief forKey:@"m_strSinaBrief"];
    [aCoder encodeObject:m_strAccessToken forKey:@"m_strAccessToken"];
    [aCoder encodeObject:m_strExpirationDate forKey:@"m_strExpirationDate"];
    [aCoder encodeObject:m_imgPortraitSmall forKey:@"m_imgPortraitSmall"];
    [aCoder encodeObject:m_imgPortraitMid forKey:@"m_imgPortraitMid"];
    [aCoder encodeObject:m_imgPortraitLarge forKey:@"m_imgPortraitLarge"];
}

//将对象解码(反序列化)
-(id) initWithCoder:(NSCoder *)aDecoder
{
    if (self=[super init])
    {
        self.m_strDeviceJid =[aDecoder decodeObjectForKey:@"m_strDeviceJid"];
        self.m_strSinaJid =[aDecoder decodeObjectForKey:@"m_strSinaJid"];
        self.m_strSinaPasswd =[aDecoder decodeObjectForKey:@"m_strSinaPasswd"];
        self.m_strNickName =[aDecoder decodeObjectForKey:@"m_strNickName"];
        self.m_strSinaBrief =[aDecoder decodeObjectForKey:@"m_strSinaBrief"];
        self.m_strAccessToken =[aDecoder decodeObjectForKey:@"m_strAccessToken"];
        self.m_strExpirationDate =[aDecoder decodeObjectForKey:@"m_strExpirationDate"];
        self.m_imgPortraitSmall =[aDecoder decodeObjectForKey:@"m_imgPortraitSmall"];
        self.m_imgPortraitMid =[aDecoder decodeObjectForKey:@"m_imgPortraitMid"];
        self.m_imgPortraitLarge =[aDecoder decodeObjectForKey:@"m_imgPortraitLarge"];
    }
    return (self);
    
}

@end


声明好之后在调用时就可以存本地plist了,以下调用函数
WeiboUserInfo *weiboUserInfo = [NSKeyedUnarchiver unarchiveObjectWithData:[m_arrUserInfo objectAtIndex:indexPath.row]];

NSData *date = [NSKeyedArchiver archivedDataWithRootObject:m_weiboUserInfo];
分享到:
评论

相关推荐

    dd-plist:一个Java库,提供对ASCII,XML和二进制属性列表的支持

    属性列表是用于存储用户设置和序列化对象的文件。 它们源自NeXSTEP编程环境,现在是Cocoa框架(OS X和iOS)以及GNUstep框架的基本组成部分。 产品特点 从文件,流或字节数组读取/写入属性列表 在属性列表格式之间...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    LocalStorage 本地永久性存储数据,除非显式将其删除或清空 SessionStorage 存储的数据只在会话期间有效,关闭浏览器则自动删除 Sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C...

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    java开源包1

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包11

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包2

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包3

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包6

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包5

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包10

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包4

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包8

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包7

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包9

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    java开源包101

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

    Java资源包01

    一个Java远程调用框架,它将原生Java对象序列化压缩装入HTTP中。它是 Spring HttpInvoker的一个轻量级选择,特别适合于当你不想在客户端程序中使用Spring框架。 API访问授权的开放标准 OAuth OAuth 协议为用户资源...

Global site tag (gtag.js) - Google Analytics