2011-09-25 79 views
0

我想比较一个ID对象的类。但是,如果我尝试将对象的类与NSNumber的类进行比较,它将不会注册为等于,即使我已经为NSNumber设置了一些变量。请你能告诉我为什么它没有注册,这是我的代码。ID比较不能正常工作

NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 
[dict setObject:n.title forKey:@"title"]; 
[dict setObject:[NSNumber numberWithBool:n.allDay] forKey:@"allDay"]; 
[dict setObject:[NSNumber numberWithInt:n.availability] forKey:@"availability"]; 
[dict setObject:[NSNumber numberWithInt:n.createdBy] forKey:@"createdBy"]; 
[dict setObject:n.endDate forKey:@"endDate"]; 
[dict setObject:n.location forKey:@"location"]; 
[dict setObject:n.notes forKey:@"notes"]; 
[dict setObject:n.ownerUsername forKey:@"ownerUsername"]; 
[dict setObject:n.startDate forKey:@"startDate"]; 
[dict setObject:[NSNumber numberWithInt:n.status] forKey:@"status"]; 
NSMutableString *json = [NSMutableString string]; 
[json appendString:@"{"]; 
for (NSString *key in [dict allKeys]) { 
    id obj = [dict objectForKey:key]; 
    if ([[dict allKeys] indexOfObject:key] == 0) { 
     if ([obj class] == [NSNumber class]) 
      [json appendFormat:@"\"%@\":%@", key, obj]; 
     else 
      [json appendFormat:@"\"%@\":\"%@\"", key, obj]; 
    } 
    else { 
     if ([obj class] == [NSNumber class]) 
      [json appendFormat:@",\"%@\":%@", key, obj]; 
     else 
      [json appendFormat:@",\"%@\":\"%@\"", key, obj]; 
    } 
} 
[json appendString:@"}"]; 

回答

0

使用:如果([OBJ isKindOfClass:[NSNumber的类])...

0

这是因为NSNumber的是集群类,当您创建的NSNumber实例,你实际上得到的实例一个子类。正如ott说你应该使用isKindOfClass :.