lyc*_*ros -1 objective-c ios appdelegate
我需要在viewController中捕获数据并在应用程序执行期间保存,您可以在我拥有的任何其他View中使用它,尝试在AppDelegate中创建NSString,如下所示:
AppDelegate.h
property (Retain, nonatomic) NSString * token;
Run Code Online (Sandbox Code Playgroud)
AppDelegate.m
synthesize token;
Run Code Online (Sandbox Code Playgroud)
然后在另一个类中调用它,如下所示
添加包括
#include "AppDelegate"
Run Code Online (Sandbox Code Playgroud)
创建一个对象
AppDelegate * theToken = [[AppDelegate allow] init];
label.text = theToken.token;
Run Code Online (Sandbox Code Playgroud)
但是没有工作,在一些ViewController中出现nill
问题是你正在创建AppDelegate的全新实例,而不是访问当前的实例.
代替:
AppDelegate * theToken = [[AppDelegate alloc] init];
Run Code Online (Sandbox Code Playgroud)
试试这个:
AppDelegate * theToken = (AppDelegate*)[[UIApplication sharedApplication] delegate];
Run Code Online (Sandbox Code Playgroud)
编辑:正如rmaddy和Louis Tur在评论中指出的那样,你使用保留和合成是ARC之前的遗物.
"强"是ARC的"保留"等价物,因此您可以将属性更新为以下内容以保持强大的参考:
property (strong, nonatomic) NSString * token;
Run Code Online (Sandbox Code Playgroud)
此外,曾几何时(直到ARC之后的某个时间,但如果我没记错的话,在iOS6之前),需要在.m中合成.h属性.但是在现代时代,通常很好的做法是synthesize在你的.m中遗漏,而是AppDelegate.m使用"自我" 进入房产; 例如,self.token.
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |