gpt4 book ai didi

Objective-C:有没有办法找出驻留在特定内存地址的对象类型?

转载 作者:行者123 更新时间:2023-12-02 06:24:27 25 4
gpt4 key购买 nike

来自Java和Python,我对内存管理不是很精通,但是有什么办法可以找出特定内存地址驻留的对象类型吗?

我问这个问题是因为我的应用程序以一条神秘消息终止:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSDecimalNumber encodedURLParameterString]:无法识别的选择器发送到实例 0x164840”

并希望获得一些关于问题所在的线索。

如果这不可能,我们将不胜感激针对此类错误消息的一些调试技术。

提前致谢!!

编辑:跟进问题(已移动 HERE)

在对我一直使用的框架进行一些调查之后,我发现了一些我不太了解的东西。

如果我有方法

- (void) myMethod:(NSString *)string {
[Object anothermethodWithString:string];
}

我调用

[Object myMethod:@"this is a string"];

我需要做类似的事情吗

NSString *string2 = [[NSString alloc] initWithFormat:@"%@", string];
[Object anothermethodWithString:string2];
[string2 release];

而不是我以前使用 myMethod 的方式?似乎我通过方法参数传递的字符串在某处被释放,这样做解决了我的问题。我想我真的不明白 @"string"在内存方面到底做了什么。它像一个自动释放的 NSString 吗?

最佳答案

嗯,从报错来看,那个内存地址的对象类型是NSDecimalNumber。您收到错误是因为您在 NSDecimalNumber 上调用了 encodedURLParameterString,而该 NSDecimalNumber 没有具有该名称的方法。

关于Objective-C:有没有办法找出驻留在特定内存地址的对象类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3267932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com