Изменить значение NSNumber путем выделения нового номера NSNumber? - PullRequest
0 голосов
/ 24 марта 2010

Я понимаю, что NSNumber является неизменным, но мне все еще нужно изменить его в моем приложении. Я использую его, потому что это объект, и поэтому его можно использовать с @property (если бы я мог, я бы использовал float или CGFloat в одно мгновение, но, к сожалению, я не могу).

Есть ли способ просто перезаписать старый экземпляр NSNumber? Я пытаюсь это:

NSNumber *zero = [[NSNumber alloc] initWithFloat:0.0];
myNSNumber = zero

но это не меняет значение. Это упрощенная версия моего кода, так как я изменяю параметр контроллера корневого представления (я знаю, не для MVC). Тем не менее, изменение значения должно быть тем же назначением, верно? Должен ли я сначала выпустить myNSNumber? Как установить @property для myNSNumber?

Спасибо!

Ответы [ 2 ]

1 голос
/ 24 марта 2010

Вы можете получить автоматически выпущенный экземпляр NSNumber, используя такие удобные методы, как numberWithDouble: или numberWithInteger:. Нет необходимости вызывать alloc / init, особенно если вы присваиваете свойство со спецификатором retain (они автоматически сохраняются / освобождаются при назначении).

0 голосов
/ 25 марта 2010

((myViewController*)self.parentViewController).otherViewController.value

Психическая отладка говорит мне, что один из объектов в этой цепочке свойств - ноль. Мои деньги идут на parentViewController, потому что я часто забываю установить родительские свойства.

...