2012-01-10 9 views
0

今まで私はindexpathの値を使っていましたが、アプリケーションはiOS5で終了します。誰もそれの正確な理由を言うことができますか?私は多くの質問&答えはこれに関連しています。しかし、まだ混乱している。なぜNSIndexPathはiOS5で正常に動作しないのですか?

この理由は何ですか?

クラッシュを防ぐために行うべき変更は何ですか?

次回のiOSバージョンで、これらの種類のコードが変更されたことはどこで知ることができますか?

更新:IOS 5 NSIndexPath代入(=)と等価(==)では

MyClass.h 

@interface MyClass:UIViewController <......> { 
... 
NSIndexPath* indexPathOfCell; 
... 
} 

... 
... 


MyClass.m 

.... 

- (IBAction) someAction: (UIButton *) buttonName { 
... 
indexPathOfCell = [MyTableView indexPathForCell:swipeCell]; //swipeCell is a UITableViewCell 
... 
} 

... 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
... 
[self deleteEntity: indexPathOfCell]; 
... 
} 

... 
... 

- (void)dealloc 
{ 
[indexPathOfCell release]; 
indexPathOfCell = nil; 
... 
} 
+0

最新のXcodeで作業していますか? –

+5

IOS5ではindexpathが正常に動作します。この問題は、使用している方法によるものと考えられます。エラーを示す小さなコードサンプルを提供できますか? –

+0

+1 @AdamDavis、クラッシュするコードを投稿する – Ilanchezhian

答えて

3

、あなたはindexPathOfCellメンバーにNSIndexPathオブジェクトを割り当てています。しかし、それは自動リリースされているので、別の方法では利用できません。だからあなたはクラッシュしている。代わりに、変数を保持することをお勧めする次のようにします。

- (IBAction) someAction: (UIButton *) buttonName { 
    ... 
    indexPathOfCell = [[MyTableView indexPathForCell:swipeCell] retain]; //swipeCell is a UITableViewCell 
    ... 
} 
+0

ありがとうございます。ここに入れるのではなく、.hファイルでプロパティを保持すると宣言できますか? – Confused

+0

ええ、そうすることができます.. – Ilanchezhian

1

機能していません。ここで

がクラッシュしたコードです。私はどんなNSIndexPathオブジェクトの前に自己を使用している

Example:- self.myIndexPath 

別の方法の解決(私の問題は解決されました): -

FirstIndexPath = (NSIndexPath*) [SecondIndexPath  copy]; 

平等は同じように動作します。同様:someAction方法で

if([self.mSelectedSubUnitIndex isEqual:SecondIndexPath]) 
{ 

} 
+0

これは絶対に意味がありません。もちろん、等価演算子と代入演算子はiOS 5.0で動作します。彼らはObjective-C言語の基本的な部分を破壊しませんでした。 –

関連する問題