zoukankan      html  css  js  c++  java
  • ios学习记录 day19 OC 4

    1.属性:属性就是一对方法 与实例变量无关;

    //为了解决每添加一个实例变量都要添加一对方法的麻烦,苹果引入了属性的概念,一个属性就代表一对方法(setter/getter)
    //属性分为声明和实现

    //属性的声明在.h
    //属性的写法  @property 类型 属性名;
    //产生方法的规则:
    //- (void)setName:(NSString *)name;
    @property NSString * name;//不要写_name

    //类的最终形态

    //声明

    #import <Foundation/Foundation.h>

    @interface Hero : NSObject

    @property (nonatomic,copy)NSString * name;
    @property (nonatomic,copy)NSString * sex;
    @property (nonatomic,copy)NSString * skill;
    @property (nonatomic)int hp;

    -(id)initWithName:(NSString *)name Sex:(NSString *)sex Skill:(NSString *)skill Hp:(int)hp;

    @end

    //实现

    #import "Hero.h"

    @implementation Hero
    -(id)initWithName:(NSString *)name Sex:(NSString *)sex Skill:(NSString *)skill Hp:(int)hp{
        self = [super init];
        if (self) {
            _name = name;
            _sex = sex;
            _skill = skill;
            _hp = hp;
        }
        return self;
    }
    @end

    属性的特性
    作用:改变属性生成的setter/getter的内部实现

    //1.读写特性
    // readwrite 可读可写(系统默认)
    // readonly 只读

    //2.原子特性(线程安全)
    // atomic     能保证线程安全(加锁)(系统默认)
    // nonatomic  不能保证线程安全 //推荐使用 占系统性能低 出错概率小

    //3.语义特性(内存特性)
    // assing  完全不用考虑内存问题 (用于基本数据类型)
    // retain  对对象类型管理内存 (适用于所有的对象类型(带*号的))
    // copy    对实现<NSCopying>协议的对象可以使用copy
    //总结:只要是对象类型都必须使用retain/copy(字符串 NSString)

    @property (nonatomic,copy) NSString * name;
    @property (nonatomic,copy) NSString * sex;
    @property (nonatomic,assign)int age;
    @property (nonatomic,assign)int num;
    @property (nonatomic,assign)int score;

  • 相关阅读:
    table的使用
    Html标签
    mysql -4练习
    mysql -3练习(分组查询后再次筛选,顺逆序排序)
    mysql -2查询单个表的数据时添加各种条件
    mysql数据库简单练习(创建表格,增删改查数据)
    JS监视滚轮向上和向下滑动与滚轮距离上部的距离(转自网络)
    JavaScript (制造简易计算器)
    JavaScript-14(操纵属性和window)
    JavaScript-13(找到单选框的value值与复选框的全选操作)
  • 原文地址:https://www.cnblogs.com/lxllanou/p/3624902.html
Copyright © 2011-2022 走看看