开发者

Obj-c let me change the class of a variable, and its bad: How hunt it?

开发者 https://www.devze.com 2023-04-08 14:33 出处:网络
Well, in obj-c have the ability of change the class of a declared var. So if I declare myVar as a NSString, is possible to get back later a NSNUmber.

Well, in obj-c have the ability of change the class of a declared var. So if I declare myVar as a NSString, is possible to get back later a NSNUmber.

I h开发者_运维技巧ave this problem now, but I can't find where in my code is the identity swap... exist a way to find it? For example is possible to set a breakpoint where [myVar class] == [NSString class] and when change know it?


You may be confused about the static type of a pointer, and the actual type of the object it points to. Consider this code:

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

This is valid code, but it didn't "transform" test into an NSNumber. It's still a string, just with an incorrect type on the pointer.

Basically, no, you don't have the ability to change the class of a variable (you do, but it's deep deep magic and almost never occurs).

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号