2011-07-19 17 views
0

私は次のメソッド使用しています:Xcodeの警告 - のaddObject

-(void) finishQuestionnaire:(id)sender{ 
    NSString * ans; 
    NSString* qt = [[[questionArray objectAtIndex:currQNum-1] question] qType];  
    if([qt isEqualToString:@"Slider"]){ 
     ans = [[[questionArray objectAtIndex:currQNum-1] sliderLabel]text]; 
    }else if([qt isEqualToString:@"Option"]){    

    }else if([qt isEqualToString:@"TextInput"]){ 
     ans = [[[questionArray objectAtIndex:currQNum-1] inputAnswer]text]; 
    }else if([qt isEqualToString:@"ImagePicker"]){ 

    }else if([qt isEqualToString:@"Comment"]){ 
     ans = [[[questionArray objectAtIndex:currQNum-1] inputAnswer]text];    
    } 
    //UPDATED 

NSLog(@"%@", [questionArray objectAtIndex:currQNum-1]); 
NSLog(@"%@", [[questionArray objectAtIndex:currQNum-1] question]); 
NSLog(@"%@", [[[questionArray objectAtIndex:currQNum-1] question] answer]); 

    //[self.navigationController popToRootViewControllerAnimated:YES]; 
} 

QT =コメントを、私は次のようなエラーやアプリのクラッシュを取得:

2011-07-20 00:02:04.723 MainMenu[71393:207] -[NSURLCache setAnswer:]: unrecognized selector sent to instance 0x4e29280 
    2011-07-20 00:02:04.726 MainMenu[71393:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSURLCache setAnswer:]: unrecognized selector sent to instance 0x4e29280' 

私はわからないんだけど私は... Qtは、スライダーとのTextInputに等しいとき、それは動作します....間違っ

回答と質問クラス

import <Foundation/Foundation.h> 


@interface Answer : NSObject { 
    //NSString* answerId; 
    NSString* answer; 
    NSString* questionId; 
    NSString* entryId; 
} 

//@property (nonatomic, retain) NSString* answerId; 
@property (nonatomic, retain) NSString* answer; 
@property (nonatomic, retain) NSString* questionId; 
@property (nonatomic, retain) NSString* entryId; 

@end 


#import "Answer.h" 


@implementation Answer 

@synthesize answer, questionId, entryId; 

@end 

#import <Foundation/Foundation.h> 
#import "Answer.h" 

@interface Question : NSObject { 
    NSString* qId; 
    NSString* qTitle; 
    NSString* qNumber; 
    NSString* sectionId; 
    NSString* qType; 
    Answer* answer; 
} 

@property (nonatomic, retain) NSString* qId; 
@property (nonatomic, retain) NSString* qTitle; 
@property (nonatomic, retain) NSString* qNumber; 
@property (nonatomic, retain) NSString* sectionId; 
@property (nonatomic, retain) NSString* qType; 
@property (nonatomic, retain) Answer* answer; 

@end 


@implementation Question 
@synthesize qId, qTitle, qNumber, sectionId, qType, answer; 

-(id)init 
{ 
    if (self = [super init]) 
    { 
     // Initialization code here 
     answer = [[Answer alloc]init]; 
    } 
    return self; 
} 

-(void) dealloc{ 
    [answer release]; 
    [super dealloc]; 
} 
をしています

編集:更新コードを参照してください、ここで出力は次のようになります。

2011-07-20 01:21:04.402 MainMenu[71910:207] <CommentQuestionViewController: 0x4e0b100> 
2011-07-20 01:21:04.404 MainMenu[71910:207] <Question: 0x4e55170> 
2011-07-20 01:21:04.404 MainMenu[71910:207] (null) 

更新:

今私もヌル届きません。私の出力はちょうどです:

2011-07-20 01:21:04.402 MainMenu[71910:207] <CommentQuestionViewController: 0x4e0b100> 
2011-07-20 01:21:04.404 MainMenu[71910:207] <Question: 0x4e55170> 

答えて

2

カスタムタイプAnswerはメソッドsetAnswerを持つように表示されません。

[[[questionArray objectAtIndex:currQNum-1] question] answer]; 

は(タイプNSURLCacheのように見える)タイプAnswerのオブジェクトを返し、その後、Answeranswerプロパティは、setterメソッドを持っていることを確認することを確認します。

編集:ソースコード全体を投稿せずにこの問題を解決するには、最初から開始して下に進みます。これによって、次のように順番に答えます。

  1. [questionArray objectAtIndex:currQNum-1]の種類は?
  2. [[questionArray objectAtIndex:currQNum-1] question]はどのタイプですか?
  3. [[[questionArray objectAtIndex:currQNum-1] question] answer]の種類は?
+0

こんにちは、お返事ありがとうございます。私は答えオブジェクトにアクセスしようとしています。各質問オブジェクトには、その内部に回答オブジェクトがあります。より多くのコードで私の投稿を更新します – ucabdro

+0

@ucabdro:上記の私の編集をチェックしてください。 3つのタイプを順番に教えてください。 – PengOne

+0

デバッグを助けるには、 'NSStringFromClass()'関数を使います:http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/referencehtml#// apple_ref/doc/uid/20000055-BCIIABFJ –

0

おそらくAnswerNSURLCacheのサブクラスです。カスタムサブクラスヘッダと実装ファイルでは、-setAnswer:というセレクタを定義して記述していることを確認してください。またはインスタンスをquestionArrayに保存し、NSURLCacheインスタンスではないことを確認してください。

EDIT

@implementation Answer 

@synthesize answer, questionId, entryId; 

@end 

が肉付けされなければなりません。これはあなたが持っているものすべてAnswer.mですか?

+0

@synthesizeを使って自動的にget/setメソッドが作成されると思いますか? – ucabdro

+0

@ucabdro:いいえ、 '@ synthesize'は行います。 – PengOne

+0

私は@合成を使用しましたので、setAnswerは有効ではありませんか?上記のクラスも参照してください。NSObject – ucabdro

関連する問題