2010-05-14 3 views
2

Как я могу передать объект NSNotification в целое число и в строку? Когда я регистрирую уведомление на консоли, я получаю ...Значение Cast от объекта NSNotification

NSConcreteNotification 0x20af70 {name = kMessageCountNotification; объект = 1}

Но когда я устанавливаю текстовое значение UILabel к этому значению, я получаю 72855952

+1

Что именно вы пытаетесь сделать или что вам нужно? Можете ли вы показать код? – DyingCactus

+0

[self.tabBarItem setBadgeValue: [NSString stringWithFormat: @ "% d", note.object]]; примечание NSNotification –

ответ

3

Документация класса, который послал это уведомление должно содержать информацию, какой тип уведомления это и то, что делает его отправьте его объект.

Вы можете получить доступ к объекту отправленное с помощью метода object:

ClassOfObjectSent *obj = [notification_you_have_received object]; 

Обратите внимание, что это указатель на объект, а не скалярное значение. Если объект NSNumber, вы можете получить int таким образом:

int i = [obj intValue]; 

Если это NSString вы могли бы использовать его непосредственно или - безопаснее - создать свою собственную копию (если вы используете Cocoa Touch или построить не-GC Mac приложение, вам понадобится release копия).

NSString *txt = [obj copy]; 
+0

Вам также придется «выпустить» копию, если вы нацеливаете систему без сбора мусора или создаете расширение приложения, которое поддерживает, но не требует сбора мусора. – dreamlax

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