iOS

iOS属性、全局变量声明

2016-08-19  本文已影响1196人  RiversMa

本文主要介绍自己使用属性和全局变量时情形,下面分几个方面讲解自己的理解:

1.属性和全局变量声明的位置

 #import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
        NSString *userName;
}
@property (nonatomic, strong) NSString *mtName;
@end
 #import "ViewController.h"
 @interface ViewController ()
//1.这里可以声明
{
    NSString *userInfoName;
}
@property (nonatomic, strong) NSString *whatName;
@end
@implementation ViewController{
//2.这里也可以声明
    NSString *haveName;
}

由上面的两种情况可以看出实际上声明全局变量或者属性有以下几种情况:

以上的声明也就是正常的理解,在.h文件中可以被外部访问,.m中本类访问,当然在.m文件中你也可以声明@public变量,但是一般我们不这么干!自从了解了运行时后感觉写在哪里都无所谓了,那么一般你们怎么声明属性和变量呢?

2. 属性(property)的特点

- 1)属性的本质:

属性的本质就是:实例变量(ivar) + 存取方法(getter + setter);下面给个截图你就明白了:

myName01.png

说明:如果重写了一个属性的set和get方法,那么系统就不会声明实例变量(成员变量)了,这时候第一个或者第二个任意打开一个就好了!

注意:

其实在实际开发中我们还会遇到@property不会自动合成(autosynthesis)的情况!它们分别是@protocol和category

简单介绍一下:

因为都是一些基础的,本人也是菜鸟一枚,如有错误,还望指点,就说这么多吧!
上一篇 下一篇

猜你喜欢

热点阅读