iOS 全局变量
2016-03-29 14:19
513 查看
对于iOS 的全局变量有好几种:
1、对于一处赋值多出使用 的 最好还是用单例比较靠谱
2、AppDelegate 中添加一个属性,在需要赋值的地方:
PS:这种其实还是利用了appDelegate 的单例属性。appdelegate在开发中 被设计成为了单例模式
3、对于一处赋值一处使用的全局变量,通常在 被赋值的 文件的.h声明
比如下面的代码 ,会在ViewController 声明一个全局变量,在别的控制器使用。
然后 在ViewController.m中赋值 。代码如下
//赋值
然后使用:在需要 使用这个全局变量的地方 导入ViewController的头文件,就可以直接使用了
1、对于一处赋值多出使用 的 最好还是用单例比较靠谱
2、AppDelegate 中添加一个属性,在需要赋值的地方:
<span style="color:#000000;">AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; appDelegate.Your Variable<span style="font-size: 16px;"></span></span>
PS:这种其实还是利用了appDelegate 的单例属性。appdelegate在开发中 被设计成为了单例模式
3、对于一处赋值一处使用的全局变量,通常在 被赋值的 文件的.h声明
比如下面的代码 ,会在ViewController 声明一个全局变量,在别的控制器使用。
#import <UIKit/UIKit.h> extern int a;// @interface ViewController : UIViewController @end
然后 在ViewController.m中赋值 。代码如下
#import "ViewController.h" #import "LoginViewController.h" int a;//这里声明 和.h 声明的全局变量相同 @interface ViewController ()<UICollectionViewDelegate,UICollectionViewDataSource> @property (weak, nonatomic) IBOutlet UICollectionView *userCollectionView;
//赋值
- (void)viewDidLoad { [super viewDidLoad]; self.userCollectionView.delegate = self; self.UserDataSource = [NSMutableArray array]; [self initView]; [self getData]; a = 111;//这里可以直接赋值了 }
然后使用:在需要 使用这个全局变量的地方 导入ViewController的头文件,就可以直接使用了
#import "LoginViewController.h" #import "UIViewController+JYModelView.h" #import "ViewController.h" @interface LoginViewController () @property (weak, nonatomic) IBOutlet UITextField *pwdTF; @property (nonatomic) LoginViewCompleteBlock block; @end @implementation LoginViewController -(instancetype)initWithCompleteBlock:(LoginViewCompleteBlock)block{ if(self = [super init]){ _block = block; NSLog(@"%d",a);//直接使用,打印出来 } return self; }
相关文章推荐
- 提高iOS开发效率的第三方框架(更新中)
- 七款Debug工具推荐:iOS开发必备的调试利器
- ios学习--属性字符串NSAttributeString与NSString相互转换包含图片和emoji图
- 《精通iOS开发·第六版》数据持久化基础知识之SOLite3持久化
- 《精通iOS开发·第六版》数据持久化基础知识之CoreData持久化
- 《精通iOS开发·第六版》数据持久化基础知识之属性列表持久化
- iOS开发遇到的问题
- iOS应用性能调优的25个建议和技巧
- 《精通iOS开发·第六版》数据持久化基础知识之对象归档持久化
- iOS navigationController push的时候全屏显示下一个页面
- [ios]当前线程暂时休眠
- ios文件管理
- ios文件读取
- IOS 中的 AppDelegate.m/h
- iOS证书、签名详解
- iOS-label出现未知边框线的bug
- 适合新人学习的iOS官方Demo
- iOS开发者程序许可协议之简单介绍
- ios:画直线和虚线
- iOS开发学习路径的一些建议