oc-23-static
#import <Foundation/Foundation.h>
#import "Person.h" int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [Person new];
// static p; // 不能修饰对象.
}
return ;
} //Person.h
#import <Foundation/Foundation.h> @interface Person : NSObject
{
// static int _age; static 不能修饰成员变量
}
//static - (void)test; // 不能修饰方法
@end
跟C语言中的用法一样。
.OC中的Static关键字使用 static 修饰局部变量:延长布局变量的生命周期 .
static 修饰全局变量:当前变量只能在当前文件中使用.
static 修饰函数:函数只能在当前文件中使用 .
.关于OC中的static关键字使用 static关键字 (在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值)变量为静态变量,位于程序的全局数据区,若作全局变量,可将声明放在实现文件的开始部分.
.在OC种static关键字使用误区 使用static修饰实例变量是不被允许的
使用static修饰方法也是不被允许的
.使用static@interface和@end之间是不被允许的(写局部变量本来就不被允许) .static的使用场合: )可以定义全局变量,但是只能在Dog.m中使用
// 狗类的声明
static int m=; //此句话也可以放到.m中
@interface Dog:NSObject
{
int _speed;
}
-(void)run;
@end // Dog.m文件内容
#import "Dog.h"
//#pragma mark 狗类的实现
@implementation Dog
-(void)run{
NSLog(@"m = %d”,m);
}
@end 2)可以定义局部变量和C语言一样,延长变量生命周期
dog.m
#import "Dog.h"
#pragma mark 狗类的实现
@implementation Dog -(void)run{
//定义局部静态变量 m
static int m=;
NSLog(@"m = %d",m);
m++;
} @end
main.m
int mian(){
Dog *d = [Dog new]; [d run];
[d run];
[d run]; return ;
}
//注意 Static型全局变量的可见性,局限于当前.m文件,其他的文件中的类,无法访问到该变量。
oc-23-static的更多相关文章
- [OC笔记] static 关键字
在变量声明前加上static关键字,可以使局部变量保留多次方法调用所得到的值.当多个方法对一个静态变量进行操作时,多个方法共享同一个静态变量的值.
- OC - 23.核心动画基础
概述 简介 核心动画提供了一组非常强大的动画API,通过该组API可以高效的实现绝大部分绚丽的动画效果 注意事项 核心动画的操作在子线程中执行,不会阻塞主线程 核心动画直接作用与CALayer对象上, ...
- 60 (OC)* 23中设计模式
git设计模式
- oc语言学习之基础知识点介绍(三):类方法、封装以及继承的介绍
一.类方法的使用 /* 像我们之前学的方法,必须先实例化这个类的对象才能调用这个方法,类方法不用实例化对象,直接调用这个方法. 之前学的方法调用的语法: [对象名 方法名]; //对象方法 类方法: ...
- Java简明教程
Java与C++比较概况 C++ Java class Foo { // 声明 Foo 类 public: int x; // 成员变量 Foo(): x() { // Foo 的构造函数Constr ...
- host文件常用地址
#+UPDATE_TIME 2016-02-16 19:52:05 UTC+8#+MESSAGE#################################################### ...
- 11月26号host
127.0.0.1 localhost255.255.255.255 broadcasthost::1 localhostfe80::1%lo0 localhost # Google start216 ...
- 11月16host文件
#################################################################################################### ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
- ECMAScript 6 扫盲
ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中 ...
随机推荐
- vim 7.4 编译安装
(1): 在安装新版本的Vim之前,你需要卸载原来安装的老版本Vim,依次在终端下执行下列命令: sudo apt-get remove vim sudo apt-get remove vim-run ...
- Hibernate中openSession() 与 getCurrentSession()的区别
1 getCurrentSession创建的session会和绑定到当前线程,而openSession每次创建新的session. 2 getCurrentSession创建的线程会在事务回滚或事物提 ...
- 分区表,桶表,外部表,以及hive一些命令行小工具
hive中的表与hdfs中的文件通过metastore关联起来的.Hive的数据模型:内部表,分区表,外部表,桶表受控表(managed table):包括内部表,分区表,桶表 内部表: 我们删除表的 ...
- 在Spring MVC中使用注解的方式校验RequestParams
概述 Spring MVC支持Bean Validation,通过这个验证技术,可以通过注解方式,很方便的对输入参数进行验证,之前使用的校验方式,都是基于Bean对象的,但是在@RequestPa ...
- 隐藏StatusBar 非setStatusBarHidden
UIWindow * window = [[UIApplication sharedApplication].windows lastObject]; 隐藏 [window setWindowLeve ...
- 关闭HTML5只能提示(form上新增novalidate)
<form novalidate> <input type="text" required /> <input type="su ...
- Android调用系统自带的文件管理器进行文件选择并读取
先调用: intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); //设置类型,我这里是任意类 ...
- OSPF虚链路配置.示例2
先看一个拓扑图 黄色区域是area0,即骨干区域,如果如图示RT1与RT6之间的链路断了,那么会出现骨干区域被“分裂”的情况,很明显骨干区域是不能被分割开的,出现这种状况的时候可能会影响到整个自制系统 ...
- Cocos2d-x 关于在iOS平台真机测试的一些注意
下面简单记录一下在最近cocos2d-x项目在iOS平台真机测试和模拟器测试中遇到的一些要注意的地方(使用ipod): 1.图片大小 游戏中基本上都是会用到图片,那么在使用图片的时候要特别注意图片的s ...
- opencv直方图均衡化
#include <iostream> #include "highgui.h" #include "cv.h" #include "cx ...