NSNumberのメンバーが数人いる管理オブジェクトを私のiPhoneアプリで作成しました。これらの値を初期化します。サブオブジェクトメンバも作成します。次に、UNDOマネージャを作成して、サブオブジェクトに対してUNDO操作を実行できるようにします。UNDOは初期化されたパラメータに影響しません。しかし、私のアプリを起動して電話すると...なぜNSUndoManager canUndoはいですか?
[undoManager canUndo];
... "はい"です。どうすればいいの?トップレベルのデータメンバーはゼロにリセットされます。それだけでなく、sub-objetのmanagedObjectContextはnilです。 UNDOマネージャを作成する前に、サブオブジェクトが作成されているときはどうすればよいでしょうか。元に戻すマネージャはレトロアクティブですか? UNDOマネージャを作成する前にこれらのデータメンバーが設定されていても、管理対象オブジェクト全体の元に戻すことができます。
洞察が得意です。
NSManagedObjectContextは独自の元に戻すマネージャを作成します。 disableUndoRegistrationとenableUndoRegistrationを使用して、特定のものが元に戻らないようにします。 – ughoavgfhw
@ughoavgfhw:iOSプラットフォームでは正しくありません! – Felix
iPhoneのCoreDataBooksの例に従っています。困惑していることは、canUndoがUNDOマネージャを作成した後にNOを返し、viewWillAppearメソッドでNOを返すことです(私はオブジェクトに影響を与える他のコードをコメントアウトしました)。しかし、取り消しボタンをタップすると、YESを返します。どうすればいいの? – Christopher