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 中 ...
随机推荐
- Trie树也称字典树
Trie树 Trie树也称字典树,因为其效率很高,所以在在字符串查找.前缀匹配等中应用很广泛,其高效率是以空间为代价的. 一.Trie树的原理 利用串构建一个字典树,这个字典树保存了串的公共前缀信息, ...
- 通过VMware Tools 将主机windows的目录共享给linux虚拟机
之前有写过 本地虚拟机挂载windows共享目录搭建开发环境 这篇,里面讲通过使用samba来实现网络共享 最近发现其实完全不用这么麻烦,VMware tools就可以帮助我们轻松的共享文件夹 这里引 ...
- URAL-1987 Nested Segments 线段树简单区间覆盖
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1987 题意:给定n条线段,每两条线段要么满足没有公共部分,要么包含.给出m个询问,求当前 ...
- jszs 枚举算法
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- android 运行 python
Jython is an implementation of the Python programming language designed to run on the Java platform. ...
- javascript里面的闭包,作用域,预解析
函数的作用域 1.全局变量=公用卫生间 2.局部变量=次卧卫生间 局部变量 全局无法使用 局部声明变量不加var的话就变成全局变量(不推荐使用) 3.闭包=次卧的可以用自己的卫生间 ...
- static_cast, dynamic_cast, const_cast探讨
转自:http://www.cnblogs.com/chio/archive/2007/07/18/822389.html 首先回顾一下C++类型转换: C++类型转换分为:隐式类型转换和显式类型转换 ...
- maven 部署到tomcat 的 resource问题
1.maven resource结构 如图,我将resoures下建立四个子文件夹,base存放的是不随环境变化的配置项,而其他三个均是对应环境的配置文件. 2.问题 我执行maven命令是没有的,但 ...
- 《面向对象程序设计》第二次作业(1)(A+B问题)
作业记录: 问题描述与代码已上传github仓库object-oriented文件夹下 题目一览 Calculate a + b and output the sum in standard form ...
- HDU2838Cow Sorting(树状数组)
题目意思是说给你一列数,每次可以将相邻的两个数交换,这一步的代价是这两个数的和,求将所有数排好序的最少代价. 题解: 我们可以这么思考,由于每次都是交换相邻的两个数,所以将一个数放到它自己的位置去后, ...