zoukankan      html  css  js  c++  java
  • 三、属性和点语法

    1.属性
    ①注意,写属性一定不要加下划线
    ②属性的特性-读写性:
    《1》readonly:只生成getter方法,不生成setter方法
    《2》readwrite:(系统默认)可读可写,生成getter,setter方法
    《3》setter= :给setter方法换一个新名字
    《4》getter=:给getter方法换一个新名字
    ③属性的特性-原子性:
    《1》atomic:原子特性。原子操作(setter、getter内部做了多线程访问处理),一般不用(系统默认)
    《2》nonatomic:非原子特性。非原子操作,声明属性时,通常使用nonatomic
    ④属性的特性-语义特性:
    MRC(手动引用计数)手动管理内存下使用
    《1》assign:修饰基本数据类型(可以修饰对象类型)
              使用:NSInteger、int、double、CGFloat...
    《2》retain:修饰类对象(不能修饰基本数据类型)
              使用:除字符串NSString以外的全部类对象类型
    《3》copy:修饰类对象(不能修饰基本数据类型)
    ARC(自动引用计数)
    《1》assgin:修饰基本数据类型(类对象类型)
    《2》weak:修饰类对象(不能修饰基本数据类型)
    《3》strong:修饰类对象(不能修饰基本数据类型)
    《4》copy:修饰类对象(不能修饰基本数据类型)
    ⑤如果有两个以上的语义,用“,”隔开
    ⑥注意setter方法不要忘记冒号
    ⑦使用属性的情况下,如果同时重写getter setter方法,需要写@synthesize
    示例:
    声明.h
    @interface Person:NSObject
    @property(nonatomic,setter=myNameIs:,getter=liuwa,copy)NSString* name;
    @property(nonatomic,assign)NSInteger age;
    @property(nonatomic,retain)NSString *sex;
    @property(nonatomic,copy)NSString *color;
    @end
    实现.m
    @implementation Person
    @synthesize sex = _sex;
    @synthesize age = _age;
    @synthesize color = _color;
    //retain
    - (void)setSex:(NSString *)sex{
         
         if(sex != _sex){
              [_sex release];
              _sex = [sex retain];
         }
    }
    - (NSString *)sex{
         
         return nil;
    }
    //assign
    - (void)setAge:(NSInteger)age{
         
         _age = age;
    }
    - (NSInteger)age{
         
         return _age;
    }
    //copy
    - (void)setColor:(NSString *)color{
         
         if(color != _color){
              [_color release];
              _color = [color copy];
         }
    }
    - (NSString *)color{
         
         return [[_color retain] autorelease];
    }
    @end
  • 相关阅读:
    aspnetcore identity result.Succeeded SignInManager.IsSignedIn(User) false?
    RFID
    window 关机
    有赞零售小票打印图片二值化方案
    条码打印
    音频基本概念
    2008R2 部署 aspnetcore repair failed 函数不正确
    IIS 字符串过长
    解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json
    book
  • 原文地址:https://www.cnblogs.com/gnhxsk/p/5170717.html
Copyright © 2011-2022 走看看