代码之家  ›  专栏  ›  技术社区  ›  cagreen

在iPhone上运行时,我的对象将变为nscfaray

  •  1
  • cagreen  · 技术社区  · 15 年前

    我真的在这件事上抓狂了:

    我有一个我实例化的对象(myObject),这个对象有一个nsarray成员变量。

    在SIM卡中工作的以下简单代码:

    MyObject *myObj = [[MyObject alloc] init];
    NSArray *arr = [myObj myMemberArray];
    

    当我将鼠标悬停在Xcode中的myobj上时,工具提示将显示“myobject”。好! 但当我在设备(OS 3.1.3)上调试它时,我得到:“[nscFarray MyMemberArray]:无法识别的选择器发送到实例…” 当我将鼠标悬停在myobj上时,它肯定会显示“nscfaray”。

    有人能告诉我下一步该去哪里吗?谢谢。

    2 回复  |  直到 15 年前
        1
  •  1
  •   JeremyP    15 年前

    它如何在SIM卡中工作而不是在设备上?

    可能是在SIM卡上,self恰好被留在用于返回值的寄存器中,可能是从您调用 self = [super init]; iPhone有不同的处理器架构,生成的机器代码恰好将数组留在寄存器中,用于返回值,而不是返回自身。

    在编译器警告设置中,应始终在其他警告标志中设置-wall。您还应该启用静态分析器设置(我忘记了它在哪里-它在目标构建设置中的某个位置)。这两个设置都允许您在编译时检测这个问题。

        2
  •  0
  •   Jordan    15 年前

    MyMemberArray是否在MyObject中的任何位置定义?

    -(void)MyObject中的MyMemberArray

    推荐文章