Tôi cố gắng để khởi NSDictionary nhưng nó mang lại cho tôi lỗi sau:Liệu NSDictionary initWithObjectsAndKeys xử lý NULL/đối tượng bằng không và khác hơn so với các đối tượng NSString
Program received signal: “EXC_BAD_ACCESS”.
Đây là mã có vấn đề của tôi [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
Và đây là tập tin Quiz.h để tham khảo
@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
Làm thế nào tôi nên sửa chữa nó, xin vui lòng giúp tôi, tôi mới đến mục tiêu c và nó là lái xe cho tôi hạt. Liệu các NSDictionary initWithObjectsAndKeys xử lý các đối tượng khác hơn là chuỗi và các đối tượng null?
Cảm ơn điều này đã giải quyết được sự cố của tôi. +1 –
Nhưng bây giờ tôi đang gặp phải một vấn đề khác, khi tôi làm: 'userAnswer = [NSNull null]' nó luôn có giá trị YES? Làm thế nào tôi có thể khởi tạo Bool với giá trị Null? –
Chấp nhận câu trả lời nếu nó hữu ích. Các biến Boolean không thể là 'NULL', chúng là' YES' (khác không) hoặc 'NO' (' 0 = NULL == NO'). Bạn có 'userAnswer = [NSNull null] == YES' vì' [NSNull null] 'là một đối tượng, và bạn đặt' userAnswer' với con trỏ tới đối tượng này, và con trỏ chính nó không phải là 0, vì vậy nó là 'YES' . Đừng nhầm lẫn các đối tượng với các giá trị vô hướng. –