【问题标题】:Obj-c let me change the class of a variable, and its bad: How hunt it?obj-c 让我改变了一个变量的类,它的坏处:怎么猎呢?
【发布时间】:2011-09-23 21:57:42
【问题描述】:

嗯,在 obj-c 中有能力改变声明的 var 的类。因此,如果我将 myVar 声明为 NSString,则可以稍后取回 NSNUmber

我现在遇到了这个问题,但是我无法在我的代码中找到身份交换的位置...是否有办法找到它?例如是否可以在[myVar class] == [NSString class] 处设置断点以及何时更改知道?

【问题讨论】:

标签: objective-c debugging types ios4 xcode4


【解决方案1】:

您可能对指针的静态 类型和它所指向的对象的实际 类型感到困惑。考虑这段代码:

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

这是有效代码,但它没有将测试“转换”为 NSNumber。它仍然是一个字符串,只是指针上的类型不正确。

基本上,不,你没有能力改变变量的类别(你可以,但这是很深奥的魔法,几乎永远不会发生)。

【讨论】:

  • 我认为他还有一个问题:一个不应该发生的任务。 @macmcx 试图定位执行赋值的语句。
  • 是的,就是这样。类型转换可能是问题所在,问题在于何时检测......我可以查看所有代码,但希望存在一个耗时较少的选项..
猜你喜欢
  • 2020-01-17
  • 2021-04-28
  • 2019-03-23
  • 1970-01-01
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多