zoukankan      html  css  js  c++  java
  • @property @synthesize的含义以及误区。

    @property的作用是定义属性,声明getter,setter方法。(注意:属性不是变量)
    @synthesize的作用是实现属性的,如getter,setter方法.

    在声明属性的情况下如果重写setter,getter,方法,就需要把未识别的变量在@synthesize中定义,把属性的存取方法作用于变量。如:

    .h文件中

    @property (nonatomic,assign)NSInteger age;
    @property (nonatomic,retain)NSString * name;
    @property (nonatomic,copy)NSString * bb;

    .m文件中

    //如果不加以下三行,就报会找不到_age,_name,_bb变量的错误
    @synthesize age = _age;
    @synthesize name = _name;
    @synthesize bb =_bb;
    
    
    - (void)setName:(NSString *)name
    {
        if (_name!=name) {
            [_name release];
            _name = [name retain];
        }
    }
    - (NSString *)name
    {
        return [[_name retain] autorelease];
    }
    - (void)setAge:(NSInteger)age
    {
        _age = age;
    }
    - (NSInteger)age
    {
        return _age;
    }
    
    - (void)setBb:(NSString *)bb
    {
        if (_bb!=bb) {
            [_bb release];
            _bb = [bb copy];
        }
    }
    - (NSString *)bb
    {
        return [[_bb retain]autorelease];
    }
    总结:一定要分清属性和变量的区别,不能混淆。@synthesize 声明的属性=变量。意思是,将属性的setter,getter方法,作用于这个变量。
  • 相关阅读:
    ubuntu
    ubuntu
    ubuntu14.04,安装Gnome 15.10 (桌面)
    ubuntu14.04,安装Gnome 15.10 (桌面)
    Ubuntu 14.04.3 LTS如何安装谷歌输入法
    Ubuntu 14.04.3 LTS如何安装谷歌输入法
    ubuntu 安装 删除 卸载 Deb 包文件
    失去爆破音规律
    单词发音规律
    英式音标和美式音标的差异
  • 原文地址:https://www.cnblogs.com/xclidongbo/p/3826018.html
Copyright © 2011-2022 走看看