`
ydbc
  • 浏览: 722995 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

ios setter getter

 
阅读更多

我们知道 如果

@property (retain,nonatomic) NSArray *myArray;

它已经为我们添加了

setMyArray 和getMyArray

我们不必再写这些函数,这样为我们提供了很大的方便,比如说,我们要用很多属性,我们不可能写很多

setter 和getter吧?比如说1000个,这样很不现实。


但是我们也可以使用自己的setter 和getter,怎么说呢?

默认情况下,我们 aa.bb=cc 调用的是 aa的 -setBb:

有时候我们想在setBb中处理一些事情,我们可能需要有自己的setBb


@interface MyViewController : UIViewController
{
NSArray *_arrayTest;
NSArray *myArray;
}

@property (retain,nonatomic,setter = setMyNewArray:) NSArray *arrayTest;
@property (retain,nonatomic) NSArray *myArray;

-(void) setMyNewArray:(NSArray *)ary;

@end


@implementation MyViewController

@synthesize arrayTest=_arrayTest;
@synthesize myArray;


-(void)setArrayTest:(NSArray *)arrayTest
{

//如果我们写了setArrayTest,setter就会调用我们写的setArrayTest,

如果你把下面的注释掉,你试一试 xx.arrayTest=xxx ,你会发现retainCount和没注释前是有变化的

//NSLog(@"set array");

/*

if (![_arrayTest isEqualToArray:arrayTest]) {
[_arrayTest release];
[arrayTest retain];
_arrayTest =arrayTest;
}
*/
}
-(void) setMyNewArray:(NSArray *)ary
{
NSLog(@" set new array");

//处理一些事情

if (![_arrayTest isEqualToArray:ary])
{
[_arrayTest release];
[ary retain];
_arrayTest =ary;
}
}
@end


分享到:
评论

相关推荐

    iOS getter setter方法

    已经拥有一年经验的你真的了解get set方法吗?也许不!以前我以为都有上架项目,这都是太基础的东西,但今天我重新回头看了以前做的笔记,真的是书读百遍,其义自见。

    关于iOS中属性变量setter与getter方法的理解

    主要给大家介绍了关于iOS中属性变量setter与getter方法的相关资料,文章介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

    ios-xcode插件批量生成属性的懒加载 getter方法.zip

    功能:批量生成属性的懒加载 getter 应用场景 :手写ui代码可以批量生成 github地址:https://github.com/hackxhj/getterMake-Xcode

    ios-NSUserDefaults替代品:NSUserDefaultsModel(基于Runtime写的库).zip

    2.在.m文件当中对每一个属性进行@dynamic操作,意为setter与getter方法由类自己实现 3.如果想对属性设置默认值,那么需要重写setupDefaultValues方法,规则是@{@"属性的字符串": @"默认值"} 4.以“name”来说...

    irrelon-synthesize:一个用于 JavaScript 模块的简单 getter setter 合成器

    在这个例子中,我们在 MyClass 原型上创建了一个名为 name() 的 getter/setter 方法: var MyClass = function () {}; synthesize(MyClass.prototype, 'name'); 然后,您可以使用要设置的参数或不带参数的参数来...

    IOS property属性详细介绍使用注意事项

    IOS property属性 原子性 atomic ... 原子性,可以理解成就是生成getter、setter方法时,编译器会自动为程序添加同步锁,减少因为在不同的线程中同时对同一个内存地址进行读写操作,而产生的二意

    ios-自动生成代码的插件.zip

    FastCoding是一个对Xcode所扩展的插件,主要是根据java的开发工具 eclipse 快速生成属性的getter ,setter 方法有感而发.出于兴趣开发本插件,目前主要功能是根据.h,.m文件声明的属性,自动生成get,set,lazy实例化方法 ...

    iOS基础知识之@property 和 Ivar 的区别

    @property = Ivar + setter + getter Ivar Ivar可以理解为类中的一个变量,主要作用是用来保存数据的。 我们不妨来看个例子,通过下边的例子能够很清楚的解释这两个东东: 我们新建一个Person类 @interface ...

    IOS 中KVC的使用方法实例详解

    IOS 中KVC的使用方法实例...因为一个类的成员变量如果没有提供getter/setter的话,外界就失去了对这个变量的访问渠道。而KVC则提供了一种访问的方法,这个在某些场合会很有威力。   不多说了,上代码: @inter

    iOS中NSObject的两种含义:类和协议详解

    需要自己处理getter和setter 方法 NS/CF/CG/CA/UI这些前缀分别是什么含义: CF CocoaFundation框架 CG CoreGraphics框架 CA Coreanimatigon框架 UI UIkit框架 下面话不多说了,来一起看看详细的介绍吧 1. 区分:类的...

    iOS 中KVC、KVO、NSNotification、delegate 总结及区别

    而不是通过调用Setter、Getter方法访问。KVO 就是基于 KVC 实现的关键技术之一。 Demo: @interface myPerson : NSObject { NSString*_name; int _age; int _height; int _weight; } @end @interface ...

    iOS常见的几个修饰词深入讲解

    前言: 最近公司在扩招,做为公司仅有的唯一一个首席iOS开发...根据字面意思,大家都很容易知道是“只读”的意思,意味着只生成了getter方法,而没有生成setter方法,如果这时候调用setter方法,会报一个Assignmen

    ohioh.de:OHIOH 我们的健康掌握在我们手中

    绑定节点配置 setter 和 getter InputStream作为请求主体和请求响应(进行中) React-Native 模块(进行中) SetStreamHandler(protocolID, handler)和NewStream(peerID, protocolID)绑定 Android/iOS 生命周期...

    ti.moddevguide:Appcelerator Titanium本机模块指南

    功能性此示例模块在iOS和Android上提供以下组件: 模块/应用生命周期 查看/代理关系 发送和接收事件( fireEvent和addEventListener ) 编写自己的setter / getter方法 验证用户输入并提供适当的错误处理 使用回调...

    微信小程序-微信小程序框架-模块化组件开发工具

    在运行阶段自动通过getter/setter,将你的“模块化组件”的数据和方法的映射到小程序的实际页面。支持组件嵌套、防止方法名污染、单向数据绑定、监听数据变化。 优势 极轻量:9kb,无论开发还是打包。 多兼容:同一...

    cgn:在 XSL 中实现的代码生成工具

    代码生成器(CGN) 该项目使使用 XSL 处理器为它们生成 Java 源代码( 变体)和 Json 解析器/gerenartor(基于 )变得简单。 开发的Saxon XSLT和XQuery处理器。 应该安装才能使用 cgn...如果 setter 应该与 getter 一

    XYXcodeTemplate

    #pragma mark - getter / setter 可落地的时候, 你懂的.... 如何要求崇尚自由的developer都按照这个去写,尤其是还得先记下这个规范. 静态检查是一个办法. Review的时候强制要求改是一种办法. 本文将介绍另外一种办法...

    Fretboard-Awesome:Fretboard Awesome是一个小部件,用于在指板上显示用户定义的注释

    如果您真正查看我的代码,您会发现-当有setter时,有一个与之配对的getter吗? 实际上,我错过了getTuning() 。 我在做什么那时我可能喝醉了。 在v0.1.0中已修复 更好的假人访问方式 我最初在init和setting shuold...

    数字动画标签效果

    已发布到CocoaPods上,含Demo,一个数字动画Label,设置AnimationSpeed属性的值可以调节动画变化速度,getter/setter方法如下: -(double)AnimationSpeed; -(void)setAnimationSpeed:(double)speed; 字体会根据数字...

Global site tag (gtag.js) - Google Analytics