日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

超简易复制Model对象(为后续备忘录设计模式博文做铺垫)

發布時間:2025/7/14 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超简易复制Model对象(为后续备忘录设计模式博文做铺垫) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

超簡易復制Model對象(為后續備忘錄設計模式博文做鋪墊)

復制整個Model需要實現NSCopy協議,可以想象是非常麻煩的一件事情,今天我跟大家分享一個不需要你做任何操作的復制Model對象的方法,不過,首先你得先去下載開源代碼FastCoder輔助才行。

源碼如下:

NSObject+ObjectCopy.h 與?NSObject+ObjectCopy.m

// // NSObject+ObjectCopy.h // FastCoder // // Created by YouXianMing on 15/1/3. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import <Foundation/Foundation.h>@interface NSObject (ObjectCopy)/*** 復制對象** @return 返回復制的對象*/ - (id)copyObject;@end // // NSObject+ObjectCopy.m // FastCoder // // Created by YouXianMing on 15/1/3. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import "NSObject+ObjectCopy.h" #import "FastCoder.h"@implementation NSObject (ObjectCopy)- (id)copyObject {id object = nil;NSData *data = nil;if ((data = [FastCoder dataWithRootObject:self])) {object = [FastCoder objectWithData:data];}return object; }@end

Model.h 與 Model.m

// // Model.h // FastCoder // // Created by YouXianMing on 15/1/3. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import <Foundation/Foundation.h>@interface Model : NSObject@property (nonatomic, strong) NSString *name; // 姓名 @property (nonatomic, strong) NSNumber *age; // 年齡 @property (nonatomic, strong) NSDate *birthDate; // 出身日期 @property (nonatomic, strong) NSArray *subInfo; // 子信息 @property (nonatomic, strong) NSDictionary *address; // 地址- (void)info;@end // // Model.m // FastCoder // // Created by YouXianMing on 15/1/3. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import "Model.h"@implementation Model- (void)info {NSLog(@"[%@]", self);NSLog(@"name %@", self.name);NSLog(@"age %@", self.age);NSLog(@"birthDate %@", self.birthDate);NSLog(@"subInfo %@", self.subInfo);NSLog(@"address %@", self.address);NSLog(@""); }@end

控制器源碼:

// // ViewController.m // http://home.cnblogs.com/u/YouXianMing/ // // Created by YouXianMing on 15/1/3. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import "ViewController.h" #import "NSObject+ObjectCopy.h" #import "Model.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// ModelOneModel *model_one = [Model new];model_one.name = @"YouXianMing";model_one.age = @(27);model_one.birthDate = [NSDate date];model_one.subInfo = @[@"iOS", @"C++"];model_one.address = @{@"BeiJing": @"TongZhou"};[model_one info];// ModelTwoModel *model_two = [model_one copyObject];model_two.name = @"QiuLiang";model_two.age = @(28);[model_two info]; }@end

核心的地方:

?

轉載于:https://www.cnblogs.com/YouXianMing/p/4199204.html

總結

以上是生活随笔為你收集整理的超简易复制Model对象(为后续备忘录设计模式博文做铺垫)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。