zl程序教程

您现在的位置是:首页 >  其它

当前栏目

NSCopying简析

简析
2023-09-14 08:57:16 时间

NSCopying简析

用到NSCopying的时候并不多,但还是有必要知道最基本的用途,比方说数组的拷贝操作,需要注意的是,数组的拷贝操作并不是执行了 copy 方法,而是需要执行 initWithArray:copyItems: ,这点需要注意.

源码:

//

// Model.h

// NSCopy

// Created by YouXianMing on 15/5/2.

// Copyright (c) 2015年 YouXianMing. All rights reserved.

#import Foundation/Foundation.h 

@interface Model : NSObject NSCopying/* 继承NSCopying协议 */ 

// 对象类型

@property (nonatomic, strong) NSString *name;

@property (nonatomic, strong) NSNumber *age;

// 基本数据类型

@property (nonatomic, assign) BOOL isMale;

@end


//

// Model.m

// NSCopy

// Created by YouXianMing on 15/5/2.

// Copyright (c) 2015年 YouXianMing. All rights reserved.

#import "Model.h"

@implementation Model

- (id)copyWithZone:(NSZone *)zone {

 // 获取拷贝内容

 Model *copy = [[[self class] allocWithZone:zone] init];

 // 基本属性的类型本身实现了copy协议

 copy.name = [_name copy];

 copy.age = [_age copy];

 // 常规类型属性仅仅需要赋值即可

 copy.isMale = _isMale;

 return copy;

@end

控制器源码:
//

// ViewController.m

// NSCopy

// Created by YouXianMing on 15/5/2.

// Copyright (c) 2015年 YouXianMing. All rights reserved.

#import "ViewController.h"

#import "Model.h"

@interface ViewController ()

@implementation ViewController

- (void)viewDidLoad {

 [super viewDidLoad];


// 数组的复制 NSArray *arrayCopy = [[NSArray alloc] initWithArray:array copyItems:YES];
图片加载框架之图片加载框架选型(一)上篇 阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将通过Universal-Image-Loader解析来阐述图片加载框架选型: 一、[Universal-Image-Loader解析基本介绍与使用] 基本...
图片加载框架之图片加载框架选型(一)下篇 阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680本篇文章将通过Picasso分析、Fresco的使用来阐述图片加载框架选型: 一、 Picasso分析 Picasso是Square公司开源的一个Android平...
带你读《ODL技术内幕:架构设计与实现原理》之一:阅读源代码前的准备 ODL不仅仅是一个SDN控制器平台,它还是一个优秀的模型驱动架构实现,以及一个典型的分布式系统设计范例。通过ODL,我们能学习的不仅仅是SDN,也能学到其通用的编程技术及软件架构设计,其分布式系统设计实现也非常值得我们借鉴。