IOS关键字const/static/extern/synthesize

const

const用来修饰右边的基本变量或指针变量
被修饰的变量只读,不能被修改

int const a = 10;
const int a = 10;
//两种写法是一样的效果
int  const  *p   //  *p只读 ;p变量
int  * const  p  // *p变量 ; p只读
const  int   * const p //p和*p都只读
int  const  * const  p   //p和*p都只读

static

修饰变量保证局部变量永远只初始化一次,在程序的运行过程中永远只有一份内存。

-(void)click{
int i = 0;
      i++;
//这里i永远为1
}
-(void)click{ 
//局部静态变量
static int i = 0;
      i++;
//这里i永远为就可以正常递增了
}

修饰全局变量

@implementation name
//全局静态变量。可以让外界无法通过extern访问
static int  i = 9;

extern

它的作用是声明外部全局变量

.h文件去生命
extern NSString * const name;
extern NSInteger  const count;
.m中去实现
NSString *const name = @"张三";
NSInteger const = 3;

只要导入头文件就可以使用这些全局的变量或者常量
开发中会专门定义一个类去管理这些变量常量

synthesize

之前@property name声明的属性,还不是自动生成set 和 get 方法
需要在.m 文件里@synthesize name;这样就会自动生成。
后面@property 的完善 就不用 在用 @synthesize 了;
下面是目前会使用到的一个列子

//.h声明
{
int  _a;
}
@property int a;
//.m实现
//这样_a  和a 就不会冲突
@synthesize a;

【初来匝道请大家多多指教】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容