我发现一对夫妇解释如何使用AppDelegate中的iOS应用程序共享对象之间的数据源。 我很怕疼实现它,它看起来像我的情况一个很好的方法。 什么可以使用AppDelegate中完成,我想知道行应绘制的思考。
显然,还有其他的方式来分享跨视图控制器的数据 ,使用单一对象 ,和NSUserDefaults的 。 什么时候适合使用AppDelegate中共享数据? 在我目前的状况,我用这种方式来存储用于推送通知的appleDeviceToken。 我使用的令牌当用户登录或应用程序的注销。
在MyAppDelegate.h我财产申报:
@property (nonatomic, retain) NSString *appleDeviceToken;
在MyAppDelegate.m我合成appleDeviceToken然后将其设置:
@synthesize appleDeviceToken;
------------------------------------------------------
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSString *devToken = [[[[deviceToken description]
stringByReplacingOccurrencesOfString:@"<"withString:@""]
stringByReplacingOccurrencesOfString:@">" withString:@""]
stringByReplacingOccurrencesOfString: @" " withString: @""];
appleDeviceToken = devToken;
}
然后,在我的LoginViewController.m我找回它,并将其发布到我的服务器:
NSString *urlForDeviceTokenPost = [NSString stringWithFormat: @"/api/users/%i/appleDeviceToken", userId];
MyAppDelegate *appDelegate = (MyAppDelegate*) [UIApplication sharedApplication].delegate;
NSString *appleDeviceTokenStr = appDelegate.appleDeviceToken;
AppleDeviceToken *appleDeviceToken = [[AppleDeviceToken alloc] init];
appleDeviceToken.deviceToken = appleDeviceTokenStr;
[[RKObjectManager sharedManager] postObject:appleDeviceToken delegate:self];
这个伟大的工程,到目前为止,但这是理想的方法? 还有什么我应该知道吗?