Obj-c позволяет мне изменить класс переменной, и это плохо: как охотиться на нее? - PullRequest
0 голосов
/ 24 сентября 2011

Ну, в obj-c есть возможность изменять класс объявленной переменной. Так что, если я объявлю myVar как NSString, можно будет вернуться позже NSNUmber.

У меня есть эта проблема сейчас, но я не могу найти, где в моем коде есть обмен удостоверениями ... существует ли способ найти его? Например, можно установить точку останова, где [myVar class] == [NSString class], а когда изменение знать это?

1 Ответ

3 голосов
/ 24 сентября 2011

Вы можете быть озадачены типом указателя static и типом фактического объекта, на который он указывает.Рассмотрим этот код:

NSString *test = @"test";
NSNumber *notReallyANumber = (NSNumber *)test;

Это действительный код, но он не "преобразовал" тест в NSNumber.Это по-прежнему строка, просто с указателем неверного типа.

По сути, нет, у вас нет возможности изменить класс переменной (да, но это глубокая глубокая магия и почти никогдапроисходит).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...