2013-11-15 2 views
1

после запроса основных данных, я получаю словарь, который одно значение этого является номер записи, если я пытаюсь напечатать значение с:Как преобразовать pfCashedNumer в int?

NSLog(@"number of entry %@",[dic valueForKey:@"count"]); 

я получить правильный результат, как:

number of entry 4 

нормально, если я пытаюсь преобразовать это число в междунар с помощью этого:

  int numberForActualCoordinate = (int)[dic valueForKey:@"count"]; 
     NSLog(@"value %i",numberForActualCoordinate); 

я получить этот результат

value 5754900 

что ад не так, если я пытаюсь напечатать класс значения в словарь я получаю это:

NSLog(@"class %@",[[dic valueForKey:@"count"] class]); 

результат:

class _PFCachedNumber 

Так что вопрос в том, как Можно ли преобразовать значение _PFCachedNumber в int?

благодаря

ответ

0

Предполагая, что dic является NSDictionary и значение счетчика является NSNumber:
Это не число, это NSNumber объект так просто литье не будет работать. Вместо этого используйте метод intValue.

NSDictionary *dic = @{@"count":@1}; 
int numberForActualCoordinate = [[dic valueForKey:@"count"] intValue]; 
NSLog(@"value %i",numberForActualCoordinate); 

NSLog выход:

значение 1

или с использованием литералов:

int numberForActualCoordinate = [dic[@"count"] intValue]; 
0

Похоже, это подкласс NSNumber. Попробуйте: [[dic valueForKey:@"count"] integerValue], а затем вы можете распечатать его с помощью %ld, как и с длинным.

Смежные вопросы