- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家好,我真的对在我的 iOS 应用程序中传递数据感到困惑。
首先,我有一个类,其中包含 TabBarController 和另外两个 ViewController。它是一个包含每日和每周日历 View 的容器 View 。
我想将下载的数据存储在带有日期的 NSDictionary 中,这样日历就不必随时重新加载数据(仅当用户强制刷新时)。
那么,我应该将这些数据存储在容器 View 的“extern NSDictionary”中吗?或者我应该创建一个 SingletonClass 并将字典存储在那里吗?但是容器 View 释放后,SingletonClass 会被释放吗?
或者我应该将 NSDictionary 存储在容器 View 中,然后通过协议(protocol)使用方法来访问 Dic?但是如何呢?
我检查了很多教程和示例,但我仍然不知道如何正确操作。谢谢
最佳答案
您可以将它存储在 tabBarController 中并在 tabBar viewController 实例中访问它,但我认为您最好将它存储在 NSUserDefaults 中..这样您就可以轻松地从应用程序的任何地方获取它无需获取 tabBar 实例。
我个人建议像这样创建一个实现 NSUserDefaults 的 Singleton 类(尽管如果您愿意,您可以直接写入和读取它):
//DefaultsSingleton.h
@interface DefaultsSingleton : NSObject
{
}
+(DefaultsSingleton*) sharedDefaultsSingleton;
@property(atomic,assign)NSDictionary *yourDictionary;
//DefaultsSingleton.m
@implementation DefaultsSingleton
SYNTHESIZE_SINGLETON_FOR_CLASS(DefaultsSingleton)
-(NSDictionary *) yourDictionary
{
return[ [NSUserDefaults standardUserDefaults] dictionaryForKey:@"your_dictionary"];
}
-(void) setYourDictionary:(NSDictionary *)yourDictionary
{
[[NSUserDefaults standardUserDefaults] setValuesForKeysWithDictionary:yourDictionary];
}
然后只需将这个单例文件导入到任何你想访问它的地方,你就可以用它的值初始化新的字典并创建可变副本,然后在你想要的任何地方覆盖保存的值。哦,您还应该导入 Matt Gallagher 很棒的 SynthesizeSingleton 类。 http://www.cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html
关于iOS 传递数据、单例、外部或通过协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16234866/
internal protocol Reducer { associatedtype S : BaseState associatedtype A : BaseActi
我在考虑我的应用程序中的验证检查,我认为在任何模型上调用 ValidatorFactory,实现 Validee,这意味着说哪个类负责 ValidatorCreation 听起来不错。但是下面的代码不
我已经定义了 2 个协议(protocol)。我需要第一个 (NameProtocol) 来执行 Equatable 协议(protocol)。而另一个类 (BuilderProtocol) 有一个返
在上传方面,WebDAV 协议(protocol)在哪些方面优于 HTTP 协议(protocol)。 Socket Upload 协议(protocol)和 WebDav Upload 协议(pro
是否可以在任何版本的 Swift 中扩展具有混合类/协议(protocol)类型约束的协议(protocol)?例如,仅当 Self 是 UIViewController 的子类并且符合 Protoc
我有一个协议(protocol) (ProtocolA),其中包含符合第二个协议(protocol) (ProtocolB) 的单个属性。 public protocol ProtocolA {
NSObject 协议(protocol)带有常用的协议(protocol)模板,但它似乎并不是协议(protocol)实际实现所必需的。将其排除在外似乎完全没有任何改变。那么,协议(protocol
我想根据这两种协议(protocol)的一般特征(例如开销(数据包)、安全性、信息建模和可靠性)来比较 OPC UA 和 MQTT。我在哪里可以找到每个协议(protocol)的开销和其他特性的一些示
使用 Swift 4,我正在尝试编写一个自定义协议(protocol),它提供对 @objc 协议(protocol)的一致性。 一些代码 更具体地说,我有一个自定义协议(protocol) Sear
我想定义一个在 Viper 架构中使用的协议(protocol),以使用具有弱属性的协议(protocol)在 Viper 组件之间建立连接,但我收到以下错误消息: 'weak' may only b
我在同一个网络中有 3 个 docker 容器: 存储 (golang) - 它提供了用于上传视频文件的 API。 主播 (nginx) - 它流式传输上传的文件 反向代理 (姑且称之为代理) 我有
我打算在我的项目中使用 php socket。它需要用户登录才能根据 session 填充内容。所以我的问题是,TCP/IP 协议(protocol)也像 HTTP 协议(protocol)一样为每个
目前,我的网站有两个版本。一种带有 https://-证书,一种没有。我想将我网站的 http 版本上的所有用户 301 重定向到我网站的 https://版本。 这似乎不可能,因为创建重定向将导致重
目前,我的网站有两个版本。一种带有 https://-证书,一种没有。我想将我网站的 http 版本上的所有用户 301 重定向到我网站的 https://版本。 这似乎不可能,因为创建重定向将导致重
我有一个 Swift View Controller ,它定义了一个在 Objective-C View Controller 中应该遵循的协议(protocol): ChildViewControl
我在客户那里有数百个硬件设备,需要通过telnet接口(interface)发送HTTP数据。 目标是等待数据的 Apache 2 Web 服务器和 PHP 脚本。 这已经可以正常工作了,但是我们发现
我发现如果我创建一个这样的协议(protocol): protocol MyProtocol { } 我不能这样做: weak var myVar: MyProtocol? 我找到了解决这个问题的方法
Xcode 基于模板生成了这个头文件: // this file is XYZAppDelegate.h #import @interface XYZAppDelegate : UIRespond
我在 github 中有一个公开的存储库,我正在开发一个开源应用程序,用于制作产品目录和小型 cms 内容。 我还有一个私有(private)仓库(不托管在github),它是在托管在github的开
您好,我想让别人看到私有(private) repo 代码,但不想公开我的 repo ,也不希望他们有能力更改内容。这可能吗?我查看了网站的“管理”部分,但没有找到合适的内容。谢谢大家。 最佳答案 据
我是一名优秀的程序员,十分优秀!