Мое приложение включает пользовательскую способность перетащить определенные объекты, такие как представления UIImage и регуляторы громкости. Моя цель состоит в том, чтобы смочь сохранить местоположения объектов так, чтобы пользователю не, возможно, придется перетащить объекты снова после перезапуска. К сожалению, я видел ошибки вдоль взятия 'сохранения CGRect rect = item.frame
кому: NSuserDefaults
илиNSKeyedArchiver
'маршрут. Какие-либо другие предложения?
Если вы используете архивирование по ключу на iPhone, UIKit специально поддерживает добавление, которое выглядит следующим образом: -encodeCGRect: forKey:
и делает именно то, что вы хотите. См. Документацию Apple для дополнений UIKit от NSCoder .
Если вы используете NSUserDefaults, вы не можете позволить себе использовать явный кодировщик для CGRects, но, как говорят некоторые другие ответы, вы можете сохранить их в виде строк, используя NSStringFromCGRect ()
и его обеспечить регресс.
Для их хранения можно использовать NSStringFromgCGRect() и CGRectFromString().
Можно использовать paste.reloader с любым wsgi-сервером, кроме других модулей вставки.
# run paste reloader import paste.reloader as reloader reloader.install() # run wsgiref server from wsgiref import simple_server simple_server.make_server('', 8080, main_wsgi_app).serve_forever()
Достаточно ли это минималистично?
-121--3153503-См. http ://lists.apple.com/archives/xcode-users/2009/Jun/msg00153.html
Хитрость состоит в том, чтобы определить EXCLUDED_SOURCE_FILE_NAMES в конфигурации, из которой требуется исключить файлы, и задать значение этого пользовательского параметра построения для списка имен файлов (или шаблона, соответствующего этим именам и только именам файлов).
-121--2443134- Вероятно, следует закодировать CGRect
с помощью NSData
, а затем сохранить объект NSData
с помощью NSUserDefaults
или NSKeyedArchiver
.
Я не уверен, на какие именно ошибки вы ссылаетесь в своем вопросе, может быть, нужно больше объяснений?
Вам нужно преобразовать плавающие значения в CGRect в NSNumbers, а затем поместить их в словарь.
Если вам нужно хранить много CGRect, я рекомендую создать небольшой облегченный класс с элементами CGRect в качестве архивируемых атрибутов NSNumber. Создайте инициализатор, который принимает CGRect. Затем напишите быстрые методы протокола NSCoder, чтобы весь объект можно было архивировать
Таким образом вы сможете быстро и легко преобразовывать, хранить и затем извлекать CGRect.