У меня есть файл заголовка variable.h, где я объявляю всю свою глобальную переменную. Затем я добавляю этот заголовочный файл в свой wordgame.m. У меня есть несколько функций. Проблема в том, что когда я инициализирую некоторая глобальная (int) переменная в функции другая функция не получает инициализированное значение. Другая функция всегда отображала значение (= 100) для этой переменной. Даже если я не инициализирую их, они всегда отображают значение 100. Может кто-нибудь скажет мне в чем проблема??? Насколько я знаю, в Objective-C значении неинициализированного переменные по умолчанию является 0.So, почему мое глобальное значение переменной дисплей 100.Задача инициализации переменной Objective-c
ответ
Если у вас есть все ваши Глобал в одном файл, variable.h, такие как
int global1, global2;
char shortStr[32];
И #include
или #import
это в каждый из ваших файлов, тогда вы создаете уникальные глобальные переменные в каждом из этих файлов, независимо друг от друга и не связанные друг с другом.
Итак, если вы измените значение global1 в одном файле, wordgame.m, это будет только тот факт, что global1 был изменен, а не global1 в другом файле .m.
Лучший способ сделать это будет иметь, в вашем variable.h:
extern int global1, global2;
extern char shortStr[32];
и наиболее соответствующий файл .m, у вас есть:
int global1;
и в другом .m файл, вы будете иметь:
int global2;
char shortStr[32];
Теперь, любой файл, который включил variable.h, будет иметь доступ к этим глобал и будет только один экземпляр этих глобалов, поэтому любое значение в этих глобальных переменных будет одинаковым для всех файлов.
Лучшего способа сделать это было бы не использовать глобал на всех, и использовании классы, одиночка и делегат ...
Хотя моя проблема не из-за того, что описывается u (поскольку вся моя функция находится в одном файле .m), я узнал о важной вещи из вашего ответа, чего я не знал. Спасибо большое. – russell
- 1. Пользовательская задача инициализации Jslider
- 2. сбой переменной инициализации
- 3. Задача статического инициализации в C++
- 4. Задача переменной POST
- 5. Задача переменной Smarty
- 6. Задача переменной T_SQL
- 7. Задача переменной Ajax Codeigniter
- 8. Задача глобальной переменной
- 9. Ошибка инициализации переменной?
- 10. Импорт переменной инициализации
- 11. Обеспечение инициализации переменной C#
- 12. Ошибка «инициализации переменной»
- 13. инициализации переменной мимо Xstream
- 14. Различные способы инициализации переменной
- 15. ExceptionInInitializerError при инициализации переменной
- 16. Проверьте производительность переменной инициализации
- 17. Определения против инициализации переменной
- 18. NullPointerException при инициализации переменной?
- 19. для инициализации переменной Python
- 20. PHP статической переменной инициализации
- 21. ошибка при инициализации переменной
- 22. Понимание инициализации локальной переменной
- 23. Задача рейка во время инициализации приложений
- 24. Ошибка инициализации задачи DownloadNuGet: незарегистрированная задача DownloadNuGet
- 25. Ошибка инициализации задачи PropertyGroup: незарегистрированная задача PropertyGroup
- 26. Настоящий небольшой ModalVIewController ObjectiveC
- 27. Отключение определенной задачи ObjectiveC?
- 28. с использованием переменной в инициализации же переменной
- 29. Задача статической переменной и функции
- 30. ObjectiveC Синтаксис определения функции
Post несколько примеров коды, где у вас возникли проблемы. –
Вам нужно опубликовать некоторый код, но я скажу, что globals не гарантируется инициализация до 0. Экземпляры экземпляра после размещения объекта, но не глобальные. –
Infact проблема инициализации возникает в моем I-телефоне, а не в симуляторе. Когда я запускаю код в своем i-телефоне, отображается следующее сообщение: : -
предупреждение: невозможно прочитать символы для ""/Users/riseuppromotions/Рабочий стол/модифицированная игра/wordmaking/build/Release-iphoneos "/wordmaking.app/wordmaking" (файл не найден). предупреждение: невозможно прочитать символы для «»/Users/riseuppromotions/Desktop/измененная игра/wordmaking/build/Release-iphoneos «/wordmaking.app/wordmaking» (файл не найден). это причина ??? мой код слишком большой, чтобы отправить. Plz дайте мне некоторое объяснение об этом предупреждении и что делать. – russell