2011-07-23 5 views
0

nsdate宣言に関連する質問があります。クラスオブジェクトでNSDAteを宣言する方法(iPhone開発)

NSDate *sortDate; 
@property(nonatomic,retain) NSDate *sortDate; 
@synthesize sortDate; 
sortDate=[NSDate date]; 

私は私がその値のAppは、このメッセージにcraches取得するときProcedure.Iが正常に私のNSDATE(sortarray).Whaenに値を割り当てる上で私のクラスにNSdateフィールドを割り当てます。

は、私は私のクラスからNSDATEフィールドを削除すると、

は、それが示す過剰悪いerror.Some時間を与える「のmallocダブルフリー/非整列ポインタはデバッグするmalloc_error_breakにブレークポイントを設定して解放さ」。アプリケーションは正常に実行されます。

宣言に関して何か間違っていますか?

任意の解決策。

ありがとうございます。

答えて

2

あなたが取得した日付インスタンスは、自動リリースされており、所有していません。あなたはIVARに直接割り当てた場合は、所有権を取得する必要があり、例えば:

それはあなたのための世話を宣言されたプロパティ、使用するのに、通常は良いでしょう
sortDate = [[NSDate date] retain]; 

self.sortDate = [NSDate date]; 

をしないでください例えば、のdeallocの所有権を放棄することを忘れ:

self.sortDate = nil; 

Cocoa memory management rulesdeclared properties documentationを参照してください。

+0

ありがとうございました。 –

関連する問題