iOS 自定义Set方法,注意点

原创 2015年07月07日 09:54:49

之前一直以为set方法就是为了,让外部调用提供外部接口用的,不过在最近沃尔玛项目中,我发现我错了,我错得特别离谱,以至于不仔细看我都被蒙过去了。

首先我们明确一点set方法,如果我们不自定义set方法,那么我们属性会自动实现set和get方法而且注意而且会生成实例变量

like:@property(nonatomic,weak) Nsstring *name;

那么系统会自动生成_name的实例变量。

那如果我们自定义是实现了set方法的话,你就别想用_name了,你不许手动在扩展里面添加一个_name的实例变量,否则就休想使用,注意不会自动生成了!

所以 我当初遇到这样一段代码

在一个

- (void)setItemsList方法里面

得到:

self.brandList = brands;


而且我自定义类里面有自定义实现set方法

- (void)setBrandList:(NSArray *)brandList


通过断点跟踪,发现当代码运行到self.brandList = brands时候

会自动跳入- (void)setBrandList:(NSArray *)brandList方法

而- (void)setBrandList:(NSArray *)brandList这个方法里面有一个

    _brandList = brandList;

注意这个_brandlist就是作者自定义的一个实例变量。不是系统自己生成的。

所以依次来说总结两点:

1.自定义set方法之后,没有办法使用到实例变量,只能手动添加

2.在我们这个自定义类里面同样可以用set方法来对属性进行逻辑处理,而且可以不给外面使用,单单set方法就给自定义里面使用。(我这个重写set的属性就是没有给外部使用)


iOS set方法

为了能让类的成员变量正确的被外接访问,我们需要设置set和get方法。 @property (nonatomic,retain)NSString *test1; @property (nonat...

ios基础知识——get,set方法

//.h文件 @interface Person : NSObject {     NSString * _name; } - (void)setName:(NSString*)name; ...

iOS 理解@property和set&get方法

例如:         @property (nonatomic, assign) int height;          Xcode自动生成          对应的set方法:- (voi...
  • siaspss
  • siaspss
  • 2017年05月04日 17:33
  • 756

ios set方法的注意事项

在set方法中,你必须考虑到的是:新的值可能随时被dealloc。因此你必须通过发送retain 消息来取得对新值的所有权,进而保证dealloc 不会发生。你还必须对旧值发送release 消息。在...

Objective-C 重写set方法

#pragma mark 重写Model的setter方法, 来给当前单元格上的子视 图赋值 在set方法里给单元格的子视图赋值, contact是UITableViewCell的一个属性, con...

小白学开发(iOS)OC_get/set 方法重写(2015-07-28)

// //  main.m //  get/set方法重写 // //  Created by admin on 15/7/29. //  Copyright (c) 2015年 admin...

IOS Category不要重写原有类方法

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc总结出来一句话 如果要重写现有类的方法,请考虑使用继承。 ------- 前言: Category是...

iOS 中 set,get方法

set方法: -(void)setName:(NSString *)name {   if (_name != name)   {    [_name release];...

@property参数-set,get方法-setter,getter方法,-Objective-C基础-IOS001

1.生成get与set方法的声明 2.生成get与set方法的简单实现 3.如果你没有声明相对应的成员变量,那么它会自动生成一个_开头的成员变量(私有变量) @property的参数类型 ...

黑马程序员——Objective-C学习之set方法和get方法

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、set方法和get方法 1. set方法和get方法的使用场合 @public的成员可...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 自定义Set方法,注意点
举报原因:
原因补充:

(最多只允许输入30个字)