问题描述
我正在为 MacOS 实现 Qt 应用程序。我有一些 Objective-C 代码。
这是其中的一部分:
CFTypeRef value;
AXUIElementCopyAttributeValue(element,kAXTitleAttribute,&urlValue);
NSString* valueAsNSString = (NSString*)value;
return valueAsNSString;
稍后在代码(不同的类)中,我使用返回的 NSString 的值使用 QString::fromNSString 将其转换为 QString。 这是我调用上一个片段的代码段。
NSString* myNSString = [(__bridge id)m_self getMyNSString];
auto myQString QString::fromNSString(myNSString);
[myNSString release];
其中 m_self 被声明为 void* 并像这样初始化:
m_self = [[ObjClass alloc] init];
并且也在析构函数中删除:
[(__bridge id)m_self dealloc];
阅读 Qt 文档,它说 QString::fromNSString 从 NSString* 返回副本。我试图释放那个 NSString 但应用程序崩溃了,我不明白。有人能解释一下原因吗?
我没有在启用 ARC 的情况下编译应用程序。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)