zoukankan      html  css  js  c++  java
  • Objuct-c 对象的初始化 存起器 属性 self和super 内存管理

     对象初始化:

    -(id)init;万能类型,能返回各种对象,可能会导致类型错误。

    -(instancetype)init;当前类的类型(推荐大家选)

     if的判断语句中self是等于[super init]而不是判断,初始化失败的话就返回空 ,这时返回0给self自己,自己就变成空对象。

    指定初始化方法

     一般是参数最多的一种初始化方法:

    其他初始化都直接间接调用指定初始化,出现错误以后可以直接从指定初始化中找出错误。

    一个类需要一个指定初始化方法。

    存取器方法:

    get的方法和实例变量同名。

    set是设置的方法,方法名命的格式set实例变量名。

    有了存取器的方法,可以使用点语法,两种方法等价。

    [实例变量名 name] 或者 实例变量名. name。

    点语法是为了减少程序员编写的时间,本质不变。

    设置了了set方法以后,也可以用点语法。

    只有get和set方法能点语法。其他语法只能用[]

    属性声明

    点H文件中

    @poroperty(nonatomic,retain)NSString* name...

    点M文件中synthesize name....

    在synthesize age_oldage,这样就可以在main文件中直接用oldage = 10;但是self.age只能这么用,两者等同于[self setoldage:10];

    @poroperty()括号中的词

    线程相关的

    1、原子性 atomic (默认)(一般使用这个)

    2、非原子性 nonatomic

    读/写

    1、readonly只产生getter方法,不生成setter的方法

    2、readwirte (默认)都会产生读取和设置的方法

    在获取和设置方法中,可以用getter和setter设置得到和设置的设置名:

    @property(nonatomic,getter = getNo,setter = setNo:)NSString* sid

    [zhang setNo:@"111"]

    得到他的值的

    zhang.getNo

     4.6版本以后

    可以不声明实例变量,只声明属性,声明属性后会自动声明实例变量

    seif和super

    把具体实例方法绑定到对象的是self

    内存管理规则

  • 相关阅读:
    sqlserver 时间格式函数详细
    asp.net中session的原理及应用
    asp.net中的cookie
    WCF 应用(一)
    c#操作word文档之简历导出
    浅解多线程
    .net反射详解
    正则表达式、常用的匹配总结
    存储过程详解
    jquery.pagination.js分页
  • 原文地址:https://www.cnblogs.com/naizui/p/5034205.html
Copyright © 2011-2022 走看看