zoukankan      html  css  js  c++  java
  • iOS:不同属性声明方式的解析

    代码:

    /*
    
    属性声明方式说明:
     
    ----------------------- 1
    @interface ...
    {
        id name
    }
    @end
     
    这样声明的属性其实可以认为是private属性,因为它只能在方法里通过name引用,外部无法通过“object.name”的方式进行引用 (内部也不能通过self引用)
    
    ----------------------  2
    
    @interface ...
    @property id name
    @end
    
    这样声明的属性可以认为是public属性,内部通过“self.name”引用;外部通过“object.name”引用
     
    ----------------------- 3
    @implementation ...
    @synthesize name
    @end
     
    允许以property声明的属性,在内部方法里除了以self引用外,还可以用属性名直接引用
     
    ----------------------- 4
    
    self.name
    其实是是两个方法(setter,getter):
    
    id value = [self name]
    [self setName = ...]
     
    ----------------------- 5
    
    总结:
    如果框架依赖的属性是@property,就不能实现为私有,否则程序可以崩掉
     
    */
    
    #import <Foundation/Foundation.h>
    
    @interface Student : NSObject
    {
        NSString *name;
    }
    
    @property NSString *address;
    
    -(void) toString;
    
    @end
    
    @implementation Student
    
    @synthesize address;
    
    -(Student *)init
    {
        name = @"lishujun";
        self.address = @"beijing";
        return self;
    }
    
    -(void) toString
    {
        NSLog(@"%@ %@", name, [self address]);
    }
    
    @end
    
    int main(int argc, const char * argv[])
    {
    
        @autoreleasepool {
            
            // insert code here...
            Student *student = [[Student alloc]init];
            [student toString];
            [student setAddress:@"tongzhou"];
            [student toString];
            NSLog(@"%@", student.address);
            
            // 语法错误,没有setName这个方法
            //[student setName:@"shujunli"];
            //[student toString];
            
        }
        return 0;
    }
  • 相关阅读:
    第二阶段站立会议第十天
    第二阶段站立会议第九天
    第二阶段站立会议第八天
    第二阶段站立会议第七天
    第二阶段站立会议第六天
    第二阶段站立会议第五天
    第二阶段站立会议第四天
    第二冲刺阶段个人进度10
    第二冲刺阶段个人进度09
    第二冲刺阶段个人进度08
  • 原文地址:https://www.cnblogs.com/code-style/p/3955031.html
Copyright © 2011-2022 走看看