2009-07-28 8 views
0

loadViewメソッドでNSArrayを初期化しようとしています。私はそれを初期化するとき、それはメモリ内の特定のアドレスを持っています。NSArrayにアクセスしようとしたときの問題

私が画面に触れると、私はリフレッシュ方法を呼び出します。私はここにブレンド配列をデバッグするとき、それは同じアドレスを持っていますが、内容は{(int型)[$のVARカウントは]}オブジェクトされて...

ここに私のコードです:

@implementation MCPickerViewController 
#pragma mark Overriden methods 

- (void)loadView { 
    [super loadView]; 

    blends = [NSArray arrayWithObjects:@"Piepje", @"Paapje", nil]; 

    pickerView = [[MCPickerView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    pickerView.delegate = self; 
    [self setView:pickerView]; 
} 

#pragma mark Delegate methods for MCPickerView 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self refresh]; 
} 

#pragma mark Personal methods 

- (void)refresh { 
    NSLog(@"count: %i", [blends count]); 
} 
@end 

私の希望誰かが私を助けることができる、私は長い間立ち往生している原因!

Thnx !!

答えて

1

問題が何であるかは完全にはわかりませんが、ブレンド配列を保持してどこかにリリースする必要があります。

私も

+0

はい「{(int型)[$のVAR数]}」は、オブジェクトがもはや有効ではないことを意味します(あなたは、などをリリース、自動解放を、保持しなければならないときに理解するためにあなたがApple's memory management guideを読んでお勧めしますそれは配列の長さを取得しようとしましたが動作しませんでした)。それはそれが解放されたことを意味します。インスタンス変数は確実に保持する必要があります – newacct

関連する問題