2012-02-28 13 views
1

を初期化されているにもかかわらずnullに設定取得私はこのように私の.hファイルで宣言しています。このint型を持っている:int型は

@interface searchResultsViewController : UIViewController { 
    int selectedEvent; 
} 

@property (nonatomic) int selectedEvent; 

それはテーブルで選択した行を保持しています。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    self.selectedEvent = [indexPath row]; 
} 

をそしてここでこのメソッドに渡された:ユーザが行をタップすると、INTは、ここで設定されている

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if ([segue.identifier isEqualToString:@"detailView"]) { 
     NSLog(@"%@", self.selectedEvent); 
    } 
} 

しかし、この方法では、のNSLogはnullを返します。私はファイルの他の部分でintを編集していません。ファイルの先頭には@synthesizeです。私は何が起こっているのか正確には分からない、誰か説明してもらえますか?

おかげ

+1

int型の書式指定子 '%d'はありませんか? – Mahesh

+1

私はずっと前に寝るべきだった...ありがとう! – KerrM

答えて

4

intは、あなたが%@を使用するときに、コンピュータがintに設定されているもののメモリアドレスで何かを探して、オブジェクトではありません、それは何も見つかっていないとき、nullを返します。 intをログに記録するには%dを使用してください。このように:

NSLog(@"%d", self.selectedEvent); 

他の有効なタイプは、などのオブジェクト(NSStringNSDictionaryNSArray、など)のための%@doubleため%funsigned intため%u

詳細情報hereです。

+0

あなたはそうです。私はそれを見ていないとは信じられません。私はまだ 'self.selectedEvent'が' prepareForSegue'メソッドの中で常に0である問題を持っています。しかし、それは 'didSelectRowAtIndexPath'メソッドで別の数に設定されています。どんな考え?途中で返事をありがとう! – KerrM

+0

'didSelectRowAtIndexPath'に' NSLog'を入れて、値が実際に設定されていることを確認しましたか? – edc1591

+0

しました。別の行をクリックすると、別の番号が返されます。それは奇妙だ! – KerrM

関連する問題