0

さまざまなタイプのビューコントローラーを含む配列を取得したviewControllersArrayので、最初にタイプが正しいかどうかを確認し (QuestionViewController)、次にプロパティを出力します。

for(NSUInteger i = 0; i<viewControllersArray.count; i++) { 
if ([[viewControllersArray objectAtIndex:i] isKindOfClass:[QuestionViewController class]])    {
    NSLog(@"%@",((QuestionViewController*)[viewControllersArray objectAtIndex:i]).getQAnswer ); 
    }
}

ただし、これは NSString プロパティの代わりに (null) を表示するだけです。

編集

これまでに得たものは次のとおりです。

for(NSUInteger i = 0; i<viewControllersArray.count; i++) { 
    if ([[viewControllersArray objectAtIndex:i] isKindOfClass:[QuestionViewController class]]){
        NSLog(@"IDENT: %@", [[viewControllersArray objectAtIndex:i] ident]);
        NSLog(@"ANSWER: %@", [[viewControllersArray objectAtIndex:i] getQAnswer]);
    }
}

2 番目の NSLog (getQAnswer) が機能します。getQAnswer は QuestionViewController のメソッドです。最初の NSLog (ident) は、正しくない出力 (null) を示しています。これは次のプロパティです。

@property (strong, nonatomic) NSString *ident;
4

2 に答える 2

1

あなたはにタイプキャストしましたQuestionViewController

使用する

NSLog(@"%@", [[viewControllersArray objectAtIndex:i] getQAnswer]); 

編集

viewControllersArray[0]あなたのコメントによると、 SendViewController.

あなたは変わるべきです

isKindOfClass:

if( [[viewControllersArray objectAtIndex:i] class] == [QuestionViewController class])   
于 2013-04-05T09:00:13.407 に答える