宣言
首先,NSString
在您的应用委托.h
文件中声明 。它应该看起来像这样:
//YourAppDelegate.h
#import <UIKit/UIKit.h>
@interface YourAppDelegate : NSObject < UIApplicationDelegate >
{
NSString *sharedString; //WE ADDED THIS
}
@property (nonatomic, retain) NSString *sharedString; //AND THIS
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet SomeViewController *viewController;
@end
现在您想要合成对象,以便为您创建访问器和修改器方法。这意味着您不必编写setSharedString:
andgetSharedString
方法 - 我们可以通过引用它来简单地访问和改变对象。这是我们在.m
文件中合成它的方式:
//YourAppDelegate.m
@synthesize sharedString;
赋值
当您想sharedString
从另一个类中分配一个值时,您必须首先检索您的应用程序委托的活动实例:
YourAppDelegate *appDelegate = (YourAppDelegate*)[[UIApplication sharedApplication] delegate];
这里的appDelegate
对象是您正在运行的应用程序委托实例。要访问sharedString
NSString
委托中的对象并分配一个值,我们会这样做:
appDelegate.sharedString = @"some string we want to assign";
在我们的应用程序运行期间,“我们想要分配的一些字符串”现在存储sharedString
在我们的应用程序委托中。
检索值
您需要在某个时候检索该值。为此,我们必须再次获取应用程序委托的运行实例:
YourAppDelegate *appDelegate = (YourAppDelegate*)[[UIApplication sharedApplication] delegate];
一旦我们有了正在运行的实例,我们就可以访问sharedString
存储在其中的对象:
NSString *retrievedString = appDelegate.sharedString;
从这一点开始,retrievedString
现在保存值“我们要分配的某个字符串”。
笔记:
在我提到的所有地方YourAppDelegate
,我指的是您的应用程序委托 - 您在项目中拥有的应用程序委托。它将与您的项目名称相关(查找文件)。