sto cercando di inizializzare NSDictionary ma mi dà errore seguente:fa NSDictionary initWithObjectsAndKeys gestisce gli oggetti null/nil e diverso NSString oggetti
Program received signal: “EXC_BAD_ACCESS”.
Ecco il mio codice problematico [Quiz.m]:
@implementation Quiz
@synthesize question;
@synthesize correctAnswer;
@synthesize userAnswer;
@synthesize questionId;
-(NSString*) getAsJsonString
{
// Following line gives the error
NSDictionary *qDictionary=[[NSDictionary alloc] initWithObjectsAndKeys:question,@"questionText",questionId,@"questionId",userAnswer,@"userAnswer",correctAnswer,@"correctAnswer",nil];
..............
.........
............
return jsonString;
}
@end
E qui è il file Quiz.h per riferimento
@interface Quiz : NSObject {
@public
NSString * question;
BOOL correctAnswer;
BOOL userAnswer;
NSInteger questionId;
}
@property (nonatomic,retain) NSString * question;
@property (nonatomic, assign) NSInteger questionId;
@property (nonatomic,assign) BOOL correctAnswer;
@property (nonatomic,assign) BOOL userAnswer;
- (NSString*) getAsJsonString;
@end
Come devo risolvere il problema, si prega di aiutami, sono nuovo all'obiettivo c e mi sta facendo impazzire. NSWictionary initWithObjectsAndKeys gestisce oggetti diversi da oggetti stringa e null?
Grazie a questo risolto il mio problema. +1 –
Ma ora sto affrontando un altro problema, quando faccio: 'userAnswer = [NSNull null]' ha sempre valore YES? Come posso inizializzare Bool con il valore Null? –
Accetta la risposta se è stata di aiuto. Le variabili booleane non possono essere 'NULL', sono' SÌ' (non zero) o 'NO' (' 0 = NULL == NO'). Hai 'userAnswer = [NSNull null] == YES' dato che' [NSNull null] 'è un oggetto, e hai impostato' userAnswer' con il puntatore a questo oggetto, e il puntatore stesso non è zero, quindi è 'YES' . Non confondere gli oggetti con valori scalari. –