#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的更多相关文章

  1. [OC笔记] static 关键字

    在变量声明前加上static关键字,可以使局部变量保留多次方法调用所得到的值.当多个方法对一个静态变量进行操作时,多个方法共享同一个静态变量的值.

  2. OC - 23.核心动画基础

    概述 简介 核心动画提供了一组非常强大的动画API,通过该组API可以高效的实现绝大部分绚丽的动画效果 注意事项 核心动画的操作在子线程中执行,不会阻塞主线程 核心动画直接作用与CALayer对象上, ...

  3. 60 (OC)* 23中设计模式

    git设计模式

  4. oc语言学习之基础知识点介绍(三):类方法、封装以及继承的介绍

    一.类方法的使用 /* 像我们之前学的方法,必须先实例化这个类的对象才能调用这个方法,类方法不用实例化对象,直接调用这个方法. 之前学的方法调用的语法: [对象名 方法名]; //对象方法 类方法: ...

  5. Java简明教程

    Java与C++比较概况 C++ Java class Foo { // 声明 Foo 类 public: int x; // 成员变量 Foo(): x() { // Foo 的构造函数Constr ...

  6. host文件常用地址

    #+UPDATE_TIME 2016-02-16 19:52:05 UTC+8#+MESSAGE#################################################### ...

  7. 11月26号host

    127.0.0.1 localhost255.255.255.255 broadcasthost::1 localhostfe80::1%lo0 localhost # Google start216 ...

  8. 11月16host文件

    #################################################################################################### ...

  9. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

  10. ECMAScript 6 扫盲

    ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中 ...

随机推荐

  1. Numpy矩阵取列向量

    >>> A=matrix("1 2;3 4") >>> A matrix([[1, 2], [3, 4]]) >>> A[:, ...

  2. c# 范型Dictionary实用例子

    //定义 public static Dictionary<string, object> dict =new Dictionary<string, object>(); // ...

  3. Delphi IOS环境安装

    RAD Delphi XE/10 Seattle 安装IOS.OSX环境安装,IOS模拟器,MAC X 真机可以调试 http://community.embarcadero.com/blogs/en ...

  4. http://blogs.msdn.com/b/pranavwagh/archive/2007/03/03/word-2007-file-seems-to-be-deleted-when-you-open-and-save-it-using-dsoframer.aspx

    http://blogs.msdn.com/b/pranavwagh/archive/2007/03/03/word-2007-file-seems-to-be-deleted-when-you-op ...

  5. MYSQL数据库性能调优之七:其他(读写分离、分表等)

    一.分表 水平划分 垂直划分 二.读写分离 三.选择合理的数据类型 特别是主键 四.文件.图片等大文件使用文件系统存储 五.数据库参数配置 注意:max_connections最大连接数一般设置在10 ...

  6. C++11包装引用

    [C++11包装引用] 我们可以通过实体化样板类 reference_wrapper 得到一个包装引用 (wrapper reference).包装引用类似于一般的引用.对于任意对象,我们可以通过模板 ...

  7. quartz中关键类

    job job是一个接口,你对某一类job的定义,可以通过实现该接口来实现.例如为销售报告定义一个SalesReportJob,包含变量name. job可以使用的几个注解 @DisallowConc ...

  8. emWin(ucGui) MULTIEDIT控件的按键响应处理 worldsing

    目前没有读过ucgui的源代码,通过应用代码测试出在FRAMEWIN的控件焦点顺序是样的: 按资源列表里创建的控件,默认将焦点落在第一个可接收焦点的控件,目前知道不可接收 焦点的控件有TEXT,在FR ...

  9. C#POP3协议实现SSL验证登陆GMAIL

    最近在折腾POP3协议,登陆pop.qq.com和pop.163.com没有什么问题,于是就想着登陆pop.gmail.com,结果失败了.经查,发现gmail的pop3端口不是110,而是995.于 ...

  10. java使用org.apache.poi读取与保存EXCEL文件

    一.读EXCEL文件 package com.ruijie.wis.cloud.utils; import java.io.FileInputStream; import java.io.FileNo ...