gpt4 book ai didi

ios - Today 扩展程序或 WatchKit 应用程序是否不赞成调用数据?

转载 作者:行者123 更新时间:2023-12-01 15:45:00 26 4
gpt4 key购买 nike

我正在修改我的应用程序,其中一件事是当我的应用程序处于后台时我无法获取最新数据。当我使用 Today 扩展程序时,我也不能委托(delegate)我的主应用程序为我打电话。

所以这似乎让我可以选择让我的扩展程序连接到服务器并对数据进行排序。因此,我必须为我的 WatchKit 应用程序做同样的事情。这是否令人不悦?如果是,是否有更好的解决方案?

所以在我的主视图 Controller 中我有这个方法:

- (void)loadTableData{
if ([self.numberField.text isEqualToString:@""]) {
tableViewController.busTimeArray = nil;
}
else{
if([self.busNumber.text isEqualToString:@""]){
TimeTableParser *timeParser = [[TimeTableParser alloc] initWithArray:tableViewController.busTimeArray];
tableViewController.busTimeArray = [timeParser parseXML:self.numberField.text];
}
else{
SortedTimeTableParser *timeParser = [[SortedTimeTableParser alloc] initWithArray:tableViewController.busTimeArray];
tableViewController.busTimeArray = [timeParser parseXMLForStop:self.numberField.text andBusNumber:self.busNumber.text];
}
}

//Shows the table
[_busTimeTable reloadData];

//Resign keyboard
[self.view endEditing:true];

[self passInformationToNCWidget];

//Make sure the refresh circle is dismissed
[_refreshController endRefreshing];
}

如您所见,我正在将信息传递给 Today Extension。这是通过 NSUserDefaults 完成的,并在 iOS 决定需要更新时在后台更新。在加载时,我的扩展程序读取 standardUserDefaults 并格式化要呈现给用户的数据。但是,我得到的反馈是,由于应用程序的性质(获取公交时间),用户希望获得更多最新数据。这是有道理的。所以我需要一种方法来获取扩展的最新数据。由于扩展不能直接调用应用程序 Controller ,我目前唯一的选择似乎是使用我拥有的排序方法(在一个单独的类中)来完成大部分繁重的工作。

最佳答案

它是否“不受欢迎”很难辨别,但我在 App Store 中的应用程序目前既有 Today 扩展程序,也有可以进行网络调用的 WatchKit 应用程序。

这并不一定意味着这样做是正确的,因为您进行的每次网络调用都会降低用户体验,但根据我的经验,Apple 似乎对此没有意见。您可能希望使用适当数量的缓存并包括故障保护,但这对 Apple 来说当然没问题,而且看起来工作得很好。

不过,如果您正在寻找替代方案,总有 NSUserDefaults ,您可以使用它在您的 WatchKit 应用程序/Today 扩展程序和您的配套 iOS 应用程序之间共享少量数据。


从您提供的代码来看,您似乎已经在使用 NSUserDefaults,并且您的用户和您对延迟的担忧是有道理的——比如巴士时间,最新的数据尽可能需要。

对于像这样的 Today 扩展的应用程序,我认为网络调用是合理的(有适当的回退),因为您需要最新的信息。

我还会看一下 the Today extension guide在“更新内容”下了解有关扩展程序如何管理要显示的新数据的更多详细信息,因为存在限制。

关于ios - Today 扩展程序或 WatchKit 应用程序是否不赞成调用数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29787312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com