Приведение типов для настройки атрибута Core Data - PullRequest
2 голосов
/ 11 февраля 2010

Я пытаюсь установить атрибут Core Data, но получаю несовместимые ошибки типа. У меня есть атрибут float в сущности Core Data на iPhone 3.0. Базовые данные автоматически генерируют интерфейс для управляемого объекта данных, который обеспечивает доступ к свойству:

@property (nonatomic, retain) NSNumber * volume;

и реализация для него:

@dynamic volume;

Я создаю экземпляр объекта управляемых данных, который я называю attrVolume, и использую его для доступа к этому атрибуту объекта данных Core через контекст управляемого объекта Core Data:

[attrVolume setVolume:[txtVolume.text floatValue]];

Ошибка компиляции:

несовместимый тип для аргумента 1 'setVolume:'

Есть идеи, как привести это значение и не получить ошибку компиляции? Есть ли способ привести к NSNUmber?

Любая помощь приветствуется //:)

1 Ответ

5 голосов
/ 11 февраля 2010

-floatValue возвращает значение типа float. Затем вы пытаетесь установить значение volume, которое принимает NSNumber к этому значению float, что не удается.

Вам необходимо создать NSNumber из значения с плавающей запятой вашей строки и присвоить его volume:

NSNumber* volNum = [NSNumber numberWithFloat:[textVolume.text floatValue]];
[attrVolume setVolume:volNum];
...