有点像全局静态变量的感觉。
参考如下:
http://zhidao.baidu.com/link?url=Enh9NZkKLdh4jwvmOleQ9CX78FCnPQBM4AZxL4c8LIARr9rflWDipbumbhLIZSoMq9ulcRe0bpGJBjKG1NP292gI5zGe8DOMBhfOssPiQJ_
AppDelegate里定义全局,在其他类中赋值
在程序的AppDelegate类中定义,在appDelegate页面把你要赋值的对象设置为appDelegate的属性,
然后通过下面这种方式获取。也就是上面所说的Singleton模式。
------------------取值----------------------
XXXAppDelegate *appDelegate = (XXXAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate yourParam];
------------------赋值----------------------
XXXAppDelegate *appDelegate = (XXXAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.yourParam = **
http://bbs.csdn.net/topics/390935996
但是在
AppDelegate。m里面给全局变量赋值的时候,出现报错。
Autosynthesized property 'currentValue' will use synthesized instance variable '_currentValue',。。。。。。。。
不知原因。。。。目前还没解决,但是在变量名前加下划线,或者是写成self.变量名的形式都可以成功,只是会出现警告。
找到解决方法!
参考如下:
http://stackoverflow.com/questions/14184691/autosynthesized-property-delegate-will-use-synthesized-instance-variable-del
http://www.reader8.cn/jiaocheng/20131205/1434014.html
[解决办法]
@property (retain, nonatomic) NSArray *questionTitleTrip;
在头文件中这样写,默认会生成一个_questionTitleTrip变量。
所以,在实现文件中最好这样写。
@synthesize questionTitleTrip = _questionTitleTrip
[解决办法]
接着楼上的说,使用@property定义变量ivar无非三种情况
1)没有合成@synthesized ,则系统会通过Autosynthesized合成一个_ivar
2)如果使用@synthesized ivar;则声称的变量为ivar
3)如果使用@synthesized ivar = _ivar;则声明的变量为_ivar。
如果使用self.ivar则三种定义方法都可以,因为self.ivar是调用的getter方法。
最后,目前Apple推荐的定义方法是第3)种。而且无需在@interface里面再定义变量,如果需要定义私有变量的话,可以在.m中用@property定义。