gpt4 book ai didi

Iphone实用程序应用程序单例问题

转载 作者:行者123 更新时间:2023-12-03 17:17:49 25 4
gpt4 key购买 nike

这在我的实用程序应用程序中让我很烦恼:我有一个以此处指定的方式声明的单例:http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html

我的单例有 4 个声明的属性:3 个 float 和一个 int。现在,在我的 View Controller 中,我在 updateSingleton 方法中设置如下属性:

[[Singleton sharedSingleton] setMyInt: var1];
[[Singleton sharedSingleton] setMyFloat1: var2];
[[Singleton sharedSingleton] setMyFloat2: var3];
[[Singleton sharedSingleton] setMyFloat3: var4];

在我的 viewDidLoad 方法中,我得到如下属性:

int m = [[Singleton sharedSingleton] myInt];

float r = [[Singleton sharedSingleton] myFloat1];
float g = [[Singleton sharedSingleton] myFloat2];
float b = [[Singleton sharedSingleton] myFloat3];

然后,我将 int 值分配给 UISegmentedControl,将 float 值分配给 UISliders。所以问题是,每当我运行我的应用程序时, float 都会存储在单例中,直到我设置 int - 如果我设置 float ,然后设置 int,则每次调用 viewDidLoad 时 float 总是重置为 0。所以顺序是:

1)启动应用程序
2)翻转 View 并设置 float (r,g,b)
3)将 View 翻转回主
4)将 View 翻转回 Flipside,并将 float 设置为之前的值。现在设置 int。
5)翻回主页面
6)将 View 翻转回 Flipside,并将 int 设置为之前的值,但将 float 设置为 0

有什么想法吗?

最佳答案

最简单的解释是你实际上并没有得到一个单例。每次使用之前,尝试记录 [Singleton sharedSingleton] 返回的对象,看看地址是否始终相同。

关于Iphone实用程序应用程序单例问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2196358/

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