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;
    }
  • 相关阅读:
    002 课程导学
    006 实例1-温度转换
    003 Python基本语法元素
    PHP读取文件头(2字节)判断文件类型(转)
    常见的浏览器Hack技巧总结(转)
    晨曦之光 linux Crontab 使用(转)
    实用技巧:简单而有用的nohup命令介绍(转)
    shell之“>/dev/null 2>&1” 详解(转)
    phpmailer邮件类下载(转)
    PHP拦截器的使用(转)
  • 原文地址:https://www.cnblogs.com/code-style/p/3955031.html
Copyright © 2011-2022 走看看