Новое NSString substringWithRange: сообщение об ошибке - PullRequest
0 голосов
/ 25 июля 2010

Я получаю новую интересную ошибку с iOS 4:

-[NSCFString substringWithRange:]: Invalid range {11, 4294967295}; this will become an exception for apps linked on SnowLeopard. Warning shown once per app execution.

Ошибка вызвана фрагментом кода, который я получил из поста в блоге, который помогает Title Case строка, и она не собираетсяэто трудно исправить, но я нигде не упоминал об этом, и я предполагаю, что Apple хочет, чтобы люди прекратили использовать магическое число 4294967295.

Кто-нибудь знает об истории / предыстории этого изменения?

РЕДАКТИРОВАТЬ: Источник для кода Case Заголовок находится по адресу: http://vengefulcow.com/titlecase/ Это порт target-c (очевидно).Линия 116 - преступник.Очевидно, что это проблема только при определенных условиях.Я все еще выслеживаю это.

1 Ответ

1 голос
/ 25 июля 2010

Без знака 4294967295 совпадает со значением uint32_t со знаком для -1.Я видел проблемы, когда 32-битное приложение заархивировало -1, а 64-битное приложение разархивировало его как длину большой задницы (ужасно весело, когда Xcode вызывал malloc(4294967295) во время 64-битного запуска).1003 * Каркасы Какао обнаруживают, что вы передали диапазон, длина которого превышает длину самой строки.Предупреждение сейчас, с усеченными результатами, но в будущем это будет серьезной ошибкой.

(В некоторых случаях NSNotFound может вызывать такие проблемы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...