【发布时间】:2010-12-24 17:42:28
【问题描述】:
我试图在几个不同的视图控制器之间共享一个 NSArray 对象,我的第一个想法是在应用程序委托上添加一个属性,因为它们都可以访问这个对象。
但经过一些调试后,由于某种原因,我似乎实际上无法共享此数组。当我从第一个视图控制器和 NSLog 设置对象时,结果一切都很好。但是当我尝试使用另一个视图控制器对象获取该数组值时,它总是返回 UITouchData(不是我的第一个视图控制器设置值后日志中先前显示的值)
这是我用来设置值的代码
NSArray* cookies = [NSHTTPCookie
cookiesWithResponseHeaderFields:[response allHeaderFields]
forURL:[NSURL URLWithString:@""]];
[appDelegate setAuthCookie:cookies];
这是我的应用委托的 .h 的一部分
@interface SomeAppDelegate : NSObject <UIApplicationDelegate> {
NSArray* authCookie;
}
@property (retain) NSArray* authCookie;
- (void)setAuthCookie:(NSArray *)cookie;
- (NSArray *)getAuthCookie;
@end
这里是相关方法的 .m
@synthesize authCookie;
- (void)setAuthCookie:(NSArray *)cookie
{
authCookie = cookie;
}
- (NSArray *)getAuthCookie
{
return authCookie;
}
这是在失败的第二个视图控制器中获取此数组的尝试(从技术上讲,它不会在这条线上失败,但我没有按预期返回 NSArray,所以当我尝试使用它时它失败了)
NSArray* cookies = [appDelegate getAuthCookie];
有什么方法可以像这样使用应用委托来共享状态?
【问题讨论】:
标签: iphone objective-c