• [Objective-c 基础


    A.id

    万能指针,可以指向任何对象,实质是NSObject的指针,使用的时候不用加上*
     
    B.NSObject中得类方法new
    1.完整地创建一个可用对象步骤
    (1)分配存储空间 + alloc
    (2)初始化 - init
    1         // 1.调用+alloc分配存储空间
    2         Person *p1 = [Person alloc];
    3         // 2.调用-init进行初始化
    4         Person *p2 = [p1 init];
    5         // 同时进行分配存储空间和初始化
    6         Person *p3 = [[Person alloc] init];
     
    (3)构造方法就是init方法
     1 @implementation Person
     2 
     3 // 重写-init方法
     4 - (id) init
     5 {
     6     // 1.一定要调用super的init方法
     7     self = [super init];// 当前对象self
     8    
     9     // 2.如果对象初始化成功,才能进行接下来的子类初始化
    10     if (self != nil)
    11     {// 初始化成功
    12         self.age = 10;
    13     }
    14    
    15     // 3.返回一个已经初始化的对象
    16     return self;
    17 }
    18 
    19 @end
    简化:
    1 - (id) init
    2 {
    3     if (self = [super init])//nil实际是0
    4     {
    5         self.age = 10;
    6     }
    7     return self;
    8 }
     
    C.自定义构造方法
     1 @interface Person : NSObject
     2 @property NSString *name;
     3 
     4 /*
     5  自定义构造方法的规范
     6  1.一定是对象方法,一定以-开头
     7  2.返回值一般是id类型
     8  3.方法名一般以init开头
     9 */
    10 
    11 - (id) initWithName:(NSString *) name;
    12 
    13 @end
    14  
    15 @implementation Person
    16 
    17 - (id) initWithName:(NSString *) name
    18 {
    19     if (self = [super init])
    20     {
    21         _name = name;
    22     }
    23    
    24     return self;
    25 }
    26 
    27 @end
    原则:父类的成员变量交给父类的方法去处理
    谁声明,谁处理
     
     
  • 相关阅读:
    先装.NET SDK 后装IIS导致的错误
    proc
    C# FTP上传
    English Word
    Window服务程序
    DataView排序 疑惑
    移除字符串末尾制定个数字符
    树状列表
    updatepanel 中按钮下载文件出错解决
    如何删除vs最近打开的项目
  • 原文地址:https://www.cnblogs.com/hellovoidworld/p/4119359.html
Copyright © 2020-2023  润新知