![]() |
|
![]() ![]() ![]() |
|
Dimanoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
В проекте есть класс Singleton , по задумке в нём должны лежать переменные, используемые разными классами. И вот что получается. Если обращаюсь из класса А, что-либо сохраняю, потом так же нормально читаю. Если же сохраняю классом А, а читать пытаюсь классом Б, получаю какую-то фигню. Например: NSPoint: {653, 72} или <CABasicAnimation: 0x71c0e40> .
Если я правильно понимаю - каждый класс создаёт-таки свой экземпляр Singleton? Отсюда все безобразия? |
|||
|
||||
Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
Нет, синглтон на то и синглтон чтобы он создавался один единственный раз и использовался всеми. Читайте паттерны, хотя бы в википедии.
|
|||
|
||||
Dimanoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
тогда в чём дело? Неправильное объявление синлтона? у меня сейчас так выглядит:
|
|||
|
||||
Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
объявление выглядит вполне нормально, а в чем дело, так это знает только ХКод
|
|||
|
||||
Dimanoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
проблемы возникают при вызове
тут я получаю или белиберду, или крэш (EXC_BAD_ACCESS code=1). Функция testAllVars безобидная, всего лишь в логи выводит все нужные переменные. Причём проблемы возникают не при первом вызове, т.е. - первый раз всё нормально проходит... |
|||
|
||||
Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
ну видимо все ваши нужные переменные и приводят к крэшу
|
|||
|
||||
Dimanoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
уверен, переменные в полном порядке. Первый раз же нормально всё, после первого обращения все переменные так в синглтоне и остаются...
|
|||
|
||||
Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
Трудно что либо сказать по вашему вопросу, я ж не телепат. Бывает что BAD_ACCESS вызван обращением к удаленному из памяти объекту (то есть к зомби). Попробуйте включить зомби в проекте и посмотрите что выводится в консоли при крэше
На картинке обратите внимание на галочку ![]() |
|||
|
||||
Dimanoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
-[CFString respondsToSelector:]: message sent to deallocated instance 0x2d6b7ff0
|
|||
|
||||
Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
это значит, что вы используете строку которая удалилась из памяти
Вы используете ARC? |
|||
|
||||
Dimanoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
никак нет-с. Постойте, на то ведь он и Синглтон, чтобы не удаляться.... |
|||
|
||||
Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
если вы не используете ARC, то вы безнадежно отстали. Вы не используете сторибоарды, вы не используете ARC, скажите еще что вы под DOS пишете.
Еще раз - удаляется не синглтон, а какая-то переменная типа NSString. Какая это только вам известно. Ищите где у вас работа со строками, как вы их храните и тд |
|||
|
||||
Dimanoss |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
Не, ну, конечно, мне бы застрелиться нужно, но это проблемы не решит. Я уже как-то оправдывался, почему я все последние причиндалы не использую. Ну вот сложилось так, последующие проекты (если будут) по другому буду делать. Добавлено через 5 минут и 52 секунды
Просто в классе Singleton объявлена переменная
|
||||||
|
|||||||
Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
как вы инициализируете эту переменную?
|
|||
|
||||
Dimanoss |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
пробовал и через сеттер, и напрямую. Даже self->userName вспомнил. Устанавливается-то она нормально, но после того, как другой ViewCotroller загружается, всё как-то тазиком прикрывается
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | iOS | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |