存储在应用程序委托中的对象似乎不存在
Posted
技术标签:
【中文标题】存储在应用程序委托中的对象似乎不存在【英文标题】:Object stored in the app delegate doesn't seem to persist 【发布时间】:2012-04-05 18:52:33 【问题描述】:也许我误解了它应该如何工作,但我在应用程序委托中创建了一个对象,并在选项卡栏控制器上设置了该对象,但是当我转到其他选项卡时,它似乎没有已经存在了。
这是我在应用程序委托中唯一引用它的地方。
AppDelegate.h
@property (strong, nonatomic) Encounter *encounter;
AppDelegate.m
@synthesize encounter;
这是我在标签控制器的第一页上设置它的地方。这是唯一一次在初始选项卡控制器视图中引用它。 loadEncounter 方法只是将来自 web api 的 json 结果传递给它。然后我加载设置视图标签的值。
ehrxAppDelegate *app = [[UIApplication sharedApplication]delegate];
app.encounter = [[Encounter alloc] init];
[app.encounter loadEncounter:result];
nameLabel.text = app.encounter.subscriber_name;
locationlabel.text = app.encounter.location_name;
dateLabel.text = app.encounter.encounter_time;
genderLabel.text = app.encounter.subscriber_gender;
dobLabel.text = app.encounter.subscriber_dob;
statusLabel.text = app.encounter.admission_status;
detailsLabel.text = app.encounter.details;
这就是我在选项卡控制器的第二个视图中访问它的方式。我的印象是,因为我在第一个视图上设置了它的值,所以我可以在第二个视图上抓取它并再次使用它。
ehrxAppDelegate *app = [[UIApplication sharedApplication]delegate];
self.encounters = app.encounter.encounters;
[self.tableView reloadData];
【问题讨论】:
【参考方案1】:app.encounter.encounters 在第一个视图中是否有效。由于您仍然可以访问 app.encounter ,因此该对象似乎在您的 vire 控制器中仍然存在。所以可能会遇到遇到.encounters 变量的问题。
encounters
你是怎么设置的?
【讨论】:
这不完全是,但它太愚蠢了。我实际上并没有在我正在显示它们的视图上完成设置表格,这就是它们没有显示的原因。以上是关于存储在应用程序委托中的对象似乎不存在的主要内容,如果未能解决你的问题,请参考以下文章