8

私は私のインターフェースにこれを持っています:

@property (nonatomic, weak) NSTimeInterval *timeStamp;

私のロジックが教えてくれたのは、インスタンス化のコンテキスト内でこのクラスによってのみ使用されるタイムスタンプオブジェクトが必要なので、「弱い」は論理的であるように見えましたが、XCodeは「プロパティ」を教えてくれます。 「weak」属性はオブジェクトタイプである必要があります。

@property (nonatomic) NSTimeInterval *timeStamp;

その後、エラーは消えますが、理由がわかりません...

4

1 に答える 1

14

問題は、それNSTimeIntervalが値型であるということです-それdoubleは本質的にのエイリアスです(typedefについてはNSDate.hをチェックしてください)。このweak属性は、保持カウントを持つオブジェクト(つまり、NSObjectまたはから派生するものNSProxy)にのみ適用されます。

そのため、へのポインタを格納することNSTimeIntervalは、おそらくあなたの側の間違いです。NSTimeInterval関数への出力(おそらくそのような場合のコールバック)として特定のアドレスに書き込むことが期待されない限り、ほとんどの場合、へのポインターを受け取ることはありません。NSTimeInterval *とは言うものの、リターンタイプとしての関数や、コールバックに同じものを渡す関数はありません。

于 2012-08-17T23:30:21.330 に答える