Xcode调用堆栈

时间:2013-09-16 14:11:29

标签: ios xcode lldb

我在模拟器中运行iOS应用程序时遇到异常

2013-09-16 18:03:44.346 DEV[26529:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSDecimalNumber isEqualToString:]: unrecognized selector sent to instance 0xf98fc70'
*** First throw call stack:
(0x17bf012 0x1c38e7e 0x184a4bd 0x17aebbc 0x17ae94e 0x1b813 0x1c4c705 0x653920 0x6538b8 0x714671 0x714bcf 0x713d38 0x917213 0x1787afe 0x1787a3d 0x17657c2 0x1764f44 0x1764e1b 0x29db7e3 0x29db668 0x65065c 0x25c9 0x2505 0x1)

UPD: 以下代码导致异常:

if([self.media.idtype isEqualToString:IMAGETYPE])

其中idtype为@property(retain, nonatomic) NSString *idtype;且IMAGETYPE为static NSString *VIDEOTYPE = @"2";

如何查看函数名称而不是地址?

2 个答案:

答案 0 :(得分:0)

isEqualToString可以比较两个NSstrings而不是你正在比较的其他类型的数据是NSDecimalNumber 将您的NSDecimalNumber转换为nsstring然后执行此操作

NSDecimalNumber* dec1;
NSString* str;

str = dec1.stringValue;
     NSString *str2=@"world";
                [str isEqualToString:str2];

答案 1 :(得分:0)

您的代码中有一些位置设置属性idtype(self.media.idtype)的值。这必须是问题的根源:

可能的问题可能是从Webservice中提取内容,并且在解析时可能会将其分配给self.media.idtype对象。