我需要将“SampleAppdelegate”中的数据共享到两个视图控制器“ContactViewController.m”和“DrinksViewController.m”。
在SampleAppdelegate中:
@interface SampleAppdelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate , UINavigationBarDelegate>
所以我在相应的视图控制器中包含了以下代码。
在ContactViewController.m中:
- (void)viewDidLoad
{
[super viewDidLoad];
SampleAppDelegate *appDelegate = (SampleAppDelegate *)[[UIApplication sharedApplication] delegate];
contactDatabaseObject = (ContactDatabaseObject *)[appDelegate.contactDetails objectAtIndex:0];
NSLog(@"%@", contactDatabaseObject.contactName);
[appDelegate release];
}
在DrinksViewController.m
中(void)viewDidLoad
{
[super viewDidLoad];
SampleAppDelegate *appDelegate = (SampleAppDelegate *)[[UIApplication sharedApplication] delegate];
drinksDatabaseObject = (DrinksDatabaseObject *)[appDelegate.drinkDetails objectAtIndex:0];
NSLog(@"%@", drinksDatabaseObject.drinkName);
[appDelegate release];
}
问题是“共享应用程序委托是两个代码都不能同时工作。(也就是说,如果我在视图控制器中进行上述评论,那么其他代码正常工作正常)。
实际上我正在使用 标签栏 和上面的viewControllers这两个项目。所以加载第一个控制器就好了。但是当我点击第二个视图控制器时,iphone模拟器会因任何警告而终止。 (同时,如果我在任何一个视图控制器中对它进行注释,代码都能正常工作)。请帮我解决上述问题或建议一种方法来完成上述功能。
提前致谢!
答案 0 :(得分:0)
你应该读......
http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/MemoryMgmt/MemoryMgmt.html
您不是appDelegate
的所有者,无需释放它。
P.S。如果您正在寻求帮助并撰写有关警告的内容,则应始终在此处复制警告,以便更好地了解您的问题。
答案 1 :(得分:0)
你不应该发布appDelegate。