2014-02-03 4 views
4

Я знаю, что это проблема, которая уже задана тысячу раз, но из нескольких опубликованных примеров, которые я пробовал, я все еще сталкиваюсь с проблемами.Преобразование NSNumber в проблему NSString

Прямо сейчас я пытаюсь показать значение для моего журнала отладки объекта, который содержит данные, которые мне нужны в качестве NSNumber. То, что я пытался была следующая строка кода:

NSString *distanceString = [NSString stringWithFormat:@"%d", (NSNumber)self.selectedBeacon.distance ]; 

Однако с вышеизложенным я получаю следующее сообщение об ошибке:

Used type 'NSNumber' where arithmetic or pointer type is required

Итак, я попытался следующие:

NSString *distanceString = [NSNumber self.selectedBeacon.distance]; 

Но когда я пошел к типу self.selectedBeacon.distance, линия не появилась в моей intelisense. Поэтому для моей третьей попытки я пробовал следующую строку;

NSString *distanceString = [NSString stringWithFormat:@"%d", [NSNumber self.selectedBeacon.distance]]; 

Но ошибка я получаю это;

Expected ']'

Хотя я вижу, что у меня есть два закрывающих кронштейна, так что ошибка меня бросила. Может ли кто-нибудь помочь мне в этом?

+0

Это очень простой вопрос, и ваши попытки решить проблему показывают, что вы можете извлечь большую пользу из работы по хорошему изучению книг Objective-C и C.;) – CouchDeveloper

+0

Очень верно, я исхожу из более C#, C++ фона и не дотрагивайтесь до Objective C/iOS dev :) – N0xus

ответ

12

Предполагая self.selectedBeacon.distance является NSNumber, то вы можете использовать [NSNumber stringValue], чтобы получить строковое представление:

NSString *distanceString = [self.selectedBeacon.distance stringValue]; 
6

Вы можете попробовать это ..

NSString *distanceString = [NSString stringWithFormat:@"%d",[self.selectedBeacon.distance integerValue]]; 
+0

Хорошее и мудрое решение. Thanx –

1

NSNumber является объектом. Вы не можете обратиться к объекту непосредственно ..

Чтобы получить значение NSNumber в строчном формате, получить его строковое значение, как это:

NSString *numberAsString = [myNSNumber stringValue]; 
0

Если вы просто обыкновение записывать их с помощью NSLog вы можете сделать

NSLog(@"%@",self.selectedBeacon.distance); 

Это будет называть description от self.selectedBeacon.distance Это работает только для объектов.

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