Это раздражает меня в моем служебном приложении: у меня есть синглтон, объявленный способом, указанным здесь: http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html
Мой синглтон имеет 4 объявленных свойства: 3 числа с плавающей запятой и целое число. Теперь в моем контроллере представления я устанавливаю такие свойства в методе 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, а значения с плавающей запятой — элементу UISliders. Итак, проблема в том, что всякий раз, когда я запускаю свое приложение, числа с плавающей запятой сохраняются в синглтоне до тех пор, пока я не установлю int - если я устанавливаю числа с плавающей запятой, а затем устанавливаю int, числа с плавающей запятой всегда сбрасываются до 0 при каждом вызове viewDidLoad. Итак, последовательность такая:
1)запустите приложение
2)переверните вид и установите поплавки(r, g, b)
3)переверните вид обратно на главную
4)переверните вид обратно на Flipside и поплавки установить прежние значения. Теперь установите int.
5) вернитесь к Main
6) переверните вид обратно на Flipside, а int будет установлен на предыдущее значение, но поплавки установлены на 0
Любые идеи?