遍匈 / Objective-C /

云仇贋刈斤嵆議圭隈

云准厘断讐僥楼泌採繍幹秀議斤嵆贋刈欺云仇猟周嶄。贋刈斤嵆?Foundation崇尺嶄戻工阻匯倖廨壇糞孖宸倖孔嬬議窃?NSKeyedArchiver才NSKeyedUnarchiver。

宥狛宸曾倖窃?厘断祥嬬校煤防仇糞孖斤斤嵆序佩贋刈才響函議孔嬬?OC嶄斤噐斤嵆議云仇贋刈才響函嗤総翌議各柵?
繍斤嵆贋刈欺云仇猟周嶄瓜各恬?拷亀。
貫云仇猟周嶄響函方象議荷恬瓜各葎?盾亀賜宀志鹸。

宥狛拷亀才盾亀?辛參糞孖繍OC嶄議叱嶽方象窃侏?駅倬廬算撹斤嵆窃侏嘉嬬贋刈?賜宀頁謹倖徭協吶斤嵆隠贋欺云仇猟周嶄?郡岻匆辛參。

和中宥狛箭徨栖初府匯和?勣?糞孖孔嬬侭勣廣吭議聾准?
幹秀匯倖垢殻?箭泌孔嬬兆葎?Demo4?
幹秀頼撹岻朔?仟秀匯倖窃?箭泌?Person窃。
壓Person窃嶄耶紗叱倖奉來賜圭隈(昧吭?辛參径孚箭徨)

恂頼貧峰彈姥垢恬朔?厘断俶勣斑Person窃嶄捲貫NSCoding亅咏?Foundation崇尺号協?斤噐耽匯倖勣糞孖繍徭協吶斤嵆贋刈欺云仇猟周議窃?脅勣捲貫NSCoding亅咏。

屡隼捲貫阻NSCoding亅咏?祥勣糞孖亅咏嶄議喘@required俐蔑議圭隈(酒汽議尖盾?祥頁泌惚勣繍匯倖斤嵆序佩拷亀賜宀盾亀?椎担宸倖斤嵆嶄議奉來匆駅倬勣序佩拷亀賜宀盾亀)?侭參宸倖亅咏嶄俶勣序佩糞孖議峪嗤曾倖圭隈?
-(void)encodeWithCoder:(NSCoder *)aCoder ?貫圭隈議凋兆祥辛參心竃?宸頁拷亀議圭隈。
-(instancetype)initWithCoder:(NSCoder *)aDecoder ?宸頁盾亀喘欺議圭隈。

和中栖心匯和醤悶議旗鷹?
Person.h嶄議旗鷹?
#import <Foundation/Foundation.h>
@interface Person : NSObject<NSCoding>
@property (nonatomic,copy)NSString * name;
@property (nonatomic,assign)int age;
@property (nonatomic,assign)BOOL sex;
@end
Person.m嶄議旗鷹?
#import "Person.h"
@implementation Person
-(void)encodeWithCoder:(NSCoder *)aCoder{
//壓宸倖圭隈嶄勣斤窃嶄蕗苧議耽倖奉來脅勣序佩拷亀。
 [aCoder encodeObject:self.name forKey:@"name"];
 [aCoder encodeBool:self.sex forKey:@"sex"];
[aCoder encodeInt:self.age forKey:@"age"];
}
-(instancetype)initWithCoder:(NSCoder *)aDecoder{
 self.name=[aDecoder decodeObjectForKey:@"name"];
 self.sex=[aDecoder decodeBoolForKey:@"sex"];
 self.age=[aDecoder decodeIntForKey:@"age"];
//宥狛臥孀囚孀竃斤哘議奉來峙?遇宸倖囚峙祥頁壓拷亀扮昨譜崔議峙。
return self;
}
@end
拷亀匯倖斤嵆
宥狛旗鷹嶄盾瞥?斤噐NSCoding亅咏哘乎嗤阻匯倖児云議範紛。宥狛貧中議垢恬?Person窃議旗鷹厮将園亟頼撹阻?和中厘断宥狛匯倖箭徨栖心匯和奕担宥狛拷亀議圭塀繍Person窃議斤嵆隠贋欺云仇猟周嶄?

壓main.m猟周嶄園亟參和旗鷹?
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
 Person * person1=[[Person alloc] init];
 person1.name=@"ZhangSan";
 person1.sex=1;
 person1.age=10;
 NSString * path=@"/Users/xieyang/Desktop/a.txt";
 [NSKeyedArchiver archiveRootObject:person1 toFile:path];//宸佩旗鷹繍person1斤嵆拷亀欺path宸倖揃抄和議猟周嶄
 return 0;
}
?戻幣?壓mac和?泌惚低?岑祇蝶倖猟周議蒸斤揃抄?嗤匯倖酒宴圭隈?嬉蝕凋綜佩?繍猟周岷俊溶欺凋綜佩和?低祥辛參岷俊誼欺宸倖猟周議蒸斤揃抄?

盾亀匯倖斤嵆

宥狛塰佩貧円議旗鷹?頼撹阻繍person1斤嵆贋刈欺a.txt猟周嶄?和中栖響函匯和?晦編貫a.txt猟周嶄誼欺person1斤嵆?

壓main.m猟周嶄園亟參和旗鷹?
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
 NSString * path=@"/Users/xieyang/Desktop/a.txt";
 Person * person=[NSKeyedUnarchiver unarchiveObjectWithFile:path];//壓盾亀議扮昨?厘断遍枠勣孀欺猟周?隼朔宥狛宸倖圭隈岷俊戻函猟周嶄議議斤嵆
 NSLog(@"the person's name is :%@,sex is :%d,age is :%d",person.name,person.sex,person.age);
 return 0;
}
補竃潤惚?the person's name is :ZhangSan,sex is :1,age is :10

拷亀謹倖斤嵆

宥狛參貧坪否議僥楼?嫺燐阻購噐泌採贋刈匯倖斤嵆?椎担泌採刈贋謹倖斤嵆椿?厘断栖写偬僥楼匯和?

壓main.m猟周嶄園亟參和旗鷹?
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
 Person * person1=[[Person alloc] init];
 person1.name=@"ZhangSan";
 person1.sex=1;
 person1.age=10;
 
 Person * person2=[[Person alloc] init];
 person2.name=@"LiSi";
 person2.sex=1;
 person2.age=20;
 //贋刈猟周議揃抄
 NSString * path=@"/Users/xieyang/Desktop/a.txt";
 NSMutableData * data=[NSMutableData data];
 NSKeyedArchiver * archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
 [archiver encodeObject:person1 forKey:@"person1"];
 [archiver encodeObject:person2 forKey:@"person2"];
 [archiver finishEncoding];
 [data writeToFile:path atomically:YES];
 
 return 0;
}
旗鷹蛍裂
屡隼勣膳楼贋刈謹倖斤嵆?遍枠勣秀羨崛富曾倖斤嵆person1才person2。
隼朔勣鳩協贋刈斤嵆議猟周議揃抄path。
NSMutableData * data=[NSMutableData data]; NSMutableData頁NSData窃侏議辛延窃侏?宥狛心宸倖窃戻工議圭隈?厘断載否叟心欺data窃圭隈?万卦指議頁云窃議斤嵆?糞縞貧頁匯倖汽箭圭隈?。

NSKeyedArchiver * archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:data];宸佩旗鷹議恬喘頁繍拷亀斤嵆才data辛延窃侏屢銭俊?宸劔議挫侃祥頁壓朔円拷亀議扮昨?方象脅氏隠贋壓data斤嵆嶄?宸匆頁葎焚担聞喘屈序崙窃侏議辛延窃侏議圻咀?拷亀匯倖?祥耶紗匯何蛍方象?。
[archiver encodeObject:person1 forKey:@"person1"];
[archiver encodeObject:person2 forKey:@"person2"];
貧円曾佩蛍艶斤person1才person2曾倖斤嵆序佩拷亀。
[archiver finishEncoding];宸佩旗鷹頁潤崩拷亀議炎崗?輝低拷亀頼斤嵆岻朔?匯協勣距喘匯和宸倖圭隈?倦夸氏竃危。
恷朔繍拷亀頼撹資誼議data贋秘猟周嶄。

盾亀謹倖斤嵆
宥狛貧円議旗鷹?厘断辛參繍謹倖Person窃議糞箭斤嵆隠贋欺云仇猟周嶄?椎担厘断壅奕担響函椿?

壓main.m猟周嶄園亟參和旗鷹?
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
 
 NSString * path=@"/Users/xieyang/Desktop/a.txt";
 NSData * theData=[NSData dataWithContentsOfFile:path];
 NSKeyedUnarchiver * unarchiver=[[NSKeyedUnarchiver alloc]initForReadingWithData:theData];
 
 Person * thePerson1=[unarchiver decodeObjectForKey:@"person1"];
 NSLog(@"the person1's name is :%@,sex is :%d,age is :%d",thePerson1.name,thePerson1.sex,thePerson1.age);
 
 Person * thePerson2=[unarchiver decodeObjectForKey:@"person2"];
 
 NSLog(@"the person2's name is :%@,sex is :%d,age is :%d",thePerson2.name,thePerson2.sex,thePerson2.age);
 
 return 0;
}
補竃潤惚?the person1's name is :ZhangSan,sex is :1,age is :10
the person2's name is :LiSi,sex is :1,age is :20

盾亀旗鷹蛍裂
  1. 遍枠厘断勣岑祇盾亀猟周議揃抄path?遇拝鳩協宸倖猟周嶄議方象頁宥狛貧中議圭塀拷亀議?
  2. 喇噐寡喘貧円議圭塀拷亀議頁匯倖NSMutableData窃侏議方象?侭參厘断辛參喘NSData窃侏議斤嵆肇俊。
  3. 資誼屈序崙方象岻朔?喇噐厘断涙隈岷俊斤屈序崙方象序佩荷恬?侭參珊誼枠繍方象盾亀嘉佩。
  4. 盾亀岻朔厘断祥辛參宥狛宸倖decodeObjectForKey圭隈功象囚栖臥孀斤哘議斤嵆

泌惚拷亀斤嵆狛謹扮?辛參深打繍宸乂徭協吶斤嵆隠贋欺方怏嶄?隼朔宥狛隠贋方怏議圭塀贋刈狛謹議斤嵆?輝俶勣戻函竃宸乂方象扮?辛參繍寡喘演煽方怏議圭塀繍徭協吶斤嵆戻函竃栖。

宥狛云准坪否議僥楼岻朔?厘断祥辛參斤方象(淫凄児云方象才斤嵆方象)序佩喟消議隠贋?揖扮?匆嬬校糞孖斤猟周嶄議方象序佩響函。

AltStyle によって変換されたページ (->オリジナル) /