在 iPhone 应用程序上保持通用常数的有效方法是什么?

发布于 2024-09-15 13:05:31 字数 172 浏览 2 评论 0原文

我正在尝试创建一个 iPhone 应用程序,在其中连接到 API 并获取安全字符串和 id,用于向 api 发出请求。

每次运行应用程序时,字符串和 ID 都会发生变化,并且应用程序中的多个视图控制器需要这些信息。

如何有效地存储该信息,以便各个类可以轻松访问它?

提前致谢! 阿杰

I'm trying to create an iPhone app in which I connect to an API and get a security string and id with which to make requests to the api.

The string and id change every time the app is run, and multiple view controllers in the application need the information.

How can I effectively store that information so it can be easily accessed by various classes?

Thanks in advance!
AJ

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凉城 2024-09-22 13:05:32

使用应用程序委托似乎是“老派”的做法,但我认为这是一个糟糕的习惯。您将应用程序委托变成了一个巨大的全局变量,这绝不是一件好事。

存储在 NSUserDefaults 中是可行的,尽管如果它不是您真正想要保存的设置(并且您可能没有考虑安全考虑),那么这可能会在以后困扰您。

我是铁杆:我会在您的应用程序委托中实例化一个数据模型类来保存这样的信息,并将其传递到您的根视图控制器,然后传递到需要访问该信息的任何其他视图控制器。优点?没有全局变量,没有任何内容会保留为用户默认值,并且只有代码中真正需要信息的部分才能看到它(减少远距离操作)。缺点?设置起来不像其他两种方法那么容易(至少第一次)。

Using the app delegate seems to be the "old school" way of doing it, but I think it's a lousy habit to get into. You turn your app delegate into a giant global variable, which is never a Good Thing.

Storing in NSUserDefaults works, although if it's not really a setting you want to save (and you might not given your security considerations), this can come back to haunt you later.

I'm hardcore: I'd instantiate a data model class in your app delegate to hold information like this, and pass it along to your root view controller and onward to any other view controllers that need access to the information. Advantages? No global variables, nothing gets persisted to user defaults, and only those parts of your code that really need the information ever see it (reduces Action At A Distance). Disadvantages? Not as easy to set up as the other two methods (at least the first time).

滥情空心 2024-09-22 13:05:32

你可以想象有很多方法,这里是使用 NSUserDefaults 的一种:

存储:

[[NSUserDefaults standardDefaults]setObject:@"some string" forKey:@"key"];

检索:

NSString *key = [[NSUserDefaults standardDefaults]objectForKey:@"key"];

As you can imagine there are lots of ways, here is one using NSUserDefaults:

Storing:

[[NSUserDefaults standardDefaults]setObject:@"some string" forKey:@"key"];

Retrieving:

NSString *key = [[NSUserDefaults standardDefaults]objectForKey:@"key"];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文