1

NSNumberは不変であることを理解していますが、アプリで変更する必要があります。オブジェクトであるため、@ propertyで使用できるため、これを使用します(可能であれば、ハートビートでfloatまたはCGFloatを使用しますが、残念ながら使用できません)。

古いNSNumberインスタンスを上書きする方法はありますか?私はこれを試しています:

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

しかし、これは値を変更しません。これは、ルートビューコントローラーのパラメーターを変更しているため、コードを簡略化したものです(MVCに対応していないことはわかっています)。それでも、値の変更は同じ割り当てである必要がありますよね?最初にmyNSNumberをリリースする必要がありますか?myNSNumberの@propertyを何に設定する必要がありますか?

ありがとう!

4

2 に答える 2

1

numberWithDouble:またはなどの便利なメソッドを使用して、NSNumberの自動リリースされたインスタンスを取得できますnumberWithInteger:。特に指定子を使用してプロパティに割り当てる場合は、alloc / initを呼び出す必要はありませんretain(これらは割り当て時に自動的に保持/解放されます)。

于 2010-03-23T22:05:03.947 に答える
0

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

サイキックデバッグでは、このプロパティチェーンのオブジェクトの1つがnilであることがわかります。親のプロパティを設定するのを忘れることが多いので、私のお金はparentViewControllerにあります。

于 2010-03-25T04:08:54.357 に答える