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

本文是关于Objective-C中属性get/set方法的重写教程,通过示例代码详细解释了如何控制外界传入数据的合理性,并讨论了手动重写get/set方法时,系统成员变量的使用问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    return 0;
}
//
//  Person.h
//  get/set方法重写
//  Created by admin on 15/7/29.
//  Copyright (c) 2015年 admin. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property int age;
@property NSString * name;

@end
//
//  Person.m
//  get/set方法重写
//
//  Created by admin on 15/7/29.
//  Copyright (c) 2015年 admin. All rights reserved.
//

#import "Person.h"

@implementation Person

/*
    1. 当想控制外界传入的一些数据的合理性、安全性的时候我们就需要手动重新get/set方法
 */
- (void)setAge:(int)age
{
    _age = age;
    if (_age < 0) {
        _age = 0;
    }
}
/*
    2. 当我们手动 同时 实现了get/set方法的时候,property就不会自动给我们生成成员变量
 */
- (int)age
{
    return _age;    //_age报错
}
    //  这里如果只重写了set或者get方法时候,成员变量_age是正确的,系统不会报错。但是如果同时重写了set和get方法,系统就会报错,说找不到_age这个成员变量。
@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值