Получение имени объекта в Objective-c - PullRequest
3 голосов
/ 04 апреля 2011

предположим, у меня есть класс Foo и экземпляр этого класса myFoo:

Foo *myFoo;

существует ли какой-либо метод "dispalyFooObjectName", который может отображать имя объекта, например:

NSLog(@"i was called from %s", [myFoo dispalyFooObjectName]);

и результат будет:

i was called from myFoo

Ответы [ 2 ]

6 голосов
/ 04 апреля 2011

В большинстве языков программирования объекты не имеют имен. То, что некоторая переменная myFoo ссылается на ваш объект, не означает, что ваш объект "называется" myFoo.

И в большинстве языков на основе Си имена переменных вообще не представлены в конечных исполняемых файлах (кроме имен внешних символов).

Итак, краткий ответ: нет никакой возможности получить эту информацию.

Если вам нужно какое-то «имя», то вы должны добавить поле name к вашему типу Foo.

0 голосов
/ 12 апреля 2011

вы можете попробовать это. переопределить - (NSstring *) метод описания, подобный этому

- (NSString*)description {
     return [NSString stringWithFormat:@"I'm called from foo"];//You can also print object's properties description here.
  }

и используйте вот так

 NSLog(@"my Foo object %@",[myFoo description]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...