Почему я получаю предупреждения, используя «imageTitle» в качестве имени атрибута для сущности CoreData? - PullRequest
1 голос
/ 11 апреля 2011

Я получаю предупреждения в Xode 4, используя «imageTitle» в качестве имени атрибута для сущности Core Data? В Xcode 3 не было предупреждения ... есть идеи, почему?

Точное предупреждение: Конфликт имен: imageTitle конфликтует с методом уже в NSObject или NSManagedObject

Очень раздражает, что я получаю это предупреждение для каждой прошлой версии модели ...
Есть идеи, как мне избавиться от этих предупреждений для прошлых версий моделей?

РЕДАКТИРОВАТЬ: Вы легко можете воспроизвести это предупреждение, если вы создадите новый проект с помощью «Приложения на основе навигации» с поддержкой CoreData и добавив только атрибут «imageTitle» ...

1 Ответ

2 голосов
/ 11 апреля 2011

Я не могу ответить, почему imageTitle специально нацелен. Мое единственное предположение состоит в том, что он конфликтует с каким-то внутренним методом или базовым атрибутом данных.

В прошлом, если бы у вас был базовый атрибут данных, который использовал одно из зарезервированных слов, Xcode позволял вам строить, и ваш проект отображал очень странное поведение. Наиболее распространенным примером является «описание». Какао предполагает, что описание возвращает строку NSString, которая описывает ваш объект, обычно для регистрации. Если бы у вас был динамически сгенерированный атрибут базовых данных с именем description, то могли бы произойти плохие вещи. Особенно, если это были данные или преобразуемые.

Текущие версии XCode выдают то же диалоговое окно с ошибкой, если вы пытаетесь назвать описание атрибута.

Хотя это раздражает, я настоятельно рекомендую изменить имя вашего атрибута на что-то другое, например, pictureTitle или imageTitleString. Несмотря на то, что «imageTitle» не встречает много обращений в документации, он, скорее всего, конфликтует с чем-то внутренним.

В крайнем случае, сообщите об ошибке в Apple. Это может быть просто ошибка в Xcode.

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