Да, просто используйте выражение global
.
def func():
global var
var = "stuff"
ОК, ТАК У МЕНЯ ОТВЕТ !!!
Проще говоря, Xcode неправильно изменяет все переменные в фактическом файле .xcodeproj. Итак, вот шаги, которые я предпринял.
Выйдите из Xcode, вы должны выполнить эту работу в терминале. Поднимите терминал и идите туда, где находится ваш проект. Найдите свой .xcodeproj и войдите в него, как если бы это был каталог. Он выглядит как настоящий файл в Finder, но это один из тех каталогов пакетов.
Я не мог получить текстовое сообщение, позволяющее мне его отредактировать, но вы можете войти в nano, как и я
sudo nano project.pbxproj, который находится в моем файле / папке / пакете / пакете .xcodeproj .
В этом файле вам нужно найти, где установлен SDKROOT. Скорее всего, есть несколько мест, где на него есть ссылки, но вы ищете SDKROOT = iphoneos2.2.1 или что-то подобное. Измените ВСЕ ЭТО (их несколько) на SDKROOT = iphoneos3.0
Теперь вы на полпути. сделайте ctrl x и сохраните файл. Затем выполните команду ls и выясните, что такое файл .pbxuser. У меня myname.pbxuser. выполните ту же команду
sudo nano myname.pbxuser
В этом файле ОГРОМНОЕ количество ссылок на каталог 2.1 iphone sdk. Выполните поиск / замену iPhoneSimulatorOLDVERSION.sdk, в моем случае это был iPhoneSimulator2.1.sdk и измените 2.1 на 3.0. Однако будьте очень осторожны, я бы не хотел знать, что произойдет, если вы испортите этот файл.
Сохраните его и откройте xcode. ОЧИСТИТЕ проект, соберите и запустите. Presto!
Проверьте целевые настройки
Убедитесь, что вы действительно подключаетесь ко всем этим фреймворкам в Target (отметьте «связать двоичный файл с библиотеками»).
Убедитесь, что вы выбрали SDK 3.0 в качестве базового SDK.
Создайте пустой проект и добавьте свои фреймворки, как раньше; если у вас все еще есть проблемы, возможно, установка SDK с ошибкой
Кстати, вам не нужно повторно добавлять фреймворки sdk, так как пути указаны относительно текущего SDK
Просто пытаюсь быть полезным ... не уверен, что смогу отладка отсюда :)
У меня были похожие проблемы с Xcode, которые, кажется, не имеют очевидной причины. Дело в том, что в Xcode все еще есть ошибки кое-где, и иногда вы БУДЕТЕ натолкнуться на стену.
Мой опыт: В некоторой степени похоже на вашу ситуацию, в одном конкретном случае проект Xcode, над которым я работал, просто перестал строиться по какой-то загадочной причине, и никакая очистка, поиск в Google или SO-ing не дали мне никаких ответов. Поэтому я просто создал СВЕЖИЙ НОВЫЙ проект и заполнил исходный код моего поврежденного проекта в код нового проекта. В новом проекте использовались ОДИН источник, библиотеки, ресурсы, настройки, заметьте - и все же он был построен без проблем.
I had the same problem using Xcode 3.2.1 but it was solved in an easier manner. I realized I had recently disabled my target's environment variables, specifically ones to do with memory debugging (NSDebugEnabled, NSZombieEnabled, NSAutoreleaseFreedObjectCheckEnabled, MallocStackLogging, MallocStackLoggingNoCompact). The app ran once in the simulator after removing the environment variables but never again after that.
Quitting Xcode, the Simulator, restarting Xcode and doing a complete clean of the target (including it's dependencies off course) brought me back to a good state.
Я только что удалил Uikit.framework из папки «Frameworks», щелкнул правой кнопкой мыши и снова добавил ее. Чистая сборка, и без проблем ..
та же проблема при запуске моего приложения без отладки. По моему опыту, продюсированная бинар, похоже, не является виновником.
Я создал приложение из мастера XCODE, который запускается OK в симуляторе (давайте назовем его TestApp, мое приложение называется MyApp), я попытался выяснить, где разница с моим приложением.
otool -l myApp
дает правильные (относительные пути) в рамки, такие же, как TestApp
PS -E
Dyld_root_path, dyld_fallback_framework_path, dyld_framework_path, dyld_library_path Переменные среды, необходимые для ld, чтобы найти структуру
В порядке для MyApp по сравнению со значениями этих переменных, когда запущен TestApp
, я подозреваю, что проблема заключается в том, что проблема находится где-то в связи между XCode и симулятором после запуска приложения ... CHORTOUGE Я не могу найти то, что не так. ..
Решение, которое работало (по крайней мере для меня), безусловно, некоторые большие побочные эффекты, но вот это: бросить xcode. Просмотрите содержание пакета MyApp.xCodeProj Разблокируйте .model1v3 и .pbxuser для модификации (блокировка на панели информации (cmd-i в файле)) Удалить эти два файла Запустите XCODE и повторите попытку, чтобы запустить приложение оттуда
Я получал та же ошибка
dyld: Библиотека не загружена: /System/Library/Frameworks/UIKit.framework/UIKit
Решение в моем случае было просто выйти из Xcode и повторить попытку.