- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
到目前为止,我已经了解到,当父对象被删除时,Qt 会释放所有子对象的内存。此外,通常不必关心在堆栈上创建的对象(即不是指针)的内存管理。
现在,当我做得很好的时候"AddressBook" tutorial ,我在第 5 部分找到了这个:
AddressBook::AddressBook(QWidget *parent) : QWidget(parent)
{
dialog = new FindDialog;
}
完整的源代码可用: addressbook.h
addressbook.cpp
finddialog.h
这里,dialog
是AddressBook
的私有(private)成员,它是指向FindDialog
的指针。 FindDialog
继承了 QDialog
,但没有 this
指针传递给构造函数(如上所示)。不存在显式析构函数,不存在删除对话框
-调用...
此外,不传递 this
似乎是故意的:
[The FindDialog's] constructor is defined to accept a parent QWidget, even though the dialog will be opened as a separate window.
这不会导致内存泄漏吗?或者是否有其他一些机制可以静默删除 dialog
并释放其内存?
在此先感谢您的帮助!
更新: 我将此问题发布到 qt-project.org forums它应该很快就会得到修复。
最佳答案
这没有任何借口,它最终会产生比你刚才提出的更多的问题,即:
不是按照你说的管理。
它不使用传统的 new Foo() 语法。
不是在构造函数的初始化列表中完成的。
一旦应用程序退出,操作系统可能会释放它,但无论如何,我总是反对此类问题,尤其是在示例项目中。在我看来,适当的解决方法是使用堆栈对象而不是堆对象或 QPointer
。
如果是后者,请参阅以下帖子以获取详细信息:
How to crash (almost) every Qt/KDE Application and how to fix
这应该在上游报告和修复;好收获!
我刚刚向 Gerrit 提交了关于此 in here 的更改.
关于c++ - Qt : AddressBook tutorial 中的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23195712/
我在下面检查了链接和API,它们都已过期并且没有最新数据。 http://www.postalpincode.in/Api-Details https://pincode.net.in/194101
在 iOS10.0 中,从联系人选择器中选择联系人会导致应用程序崩溃。联系人选取器使用 ABPeoplePickerNavigationController 显示,如下所示: let contacts
我需要以编程方式备份具有所有记录(数字,名称,图像等)的所有联系人。我阅读了有关AddressBook.framework的信息,但是有一种简单的方法可以备份所有联系人吗? 最佳答案 1.一种方法
在我的 iOS 应用程序中,我创建了自己的联系表单,该表单附加了我的应用程序的唯一标识符。我想将地址簿中的联系人更新为 sql“更新”语句。 在 iOS 中我只看到 ABAddressBookAddR
AddressBook 存在一些我无法重现的问题,代码在我的 iPhone 和 iPad 上运行,这发生在客户端手机上并导致应用程序崩溃。据我从 Crashlytics 中看到的问题应该在以下行中:
我有 2 个类图,类地址 +forename +surename +street +houseno +code +state +toString 第二个地址簿 insert(address: Addr
我的 ABAddressBookGetPersonWithRecordID 和 ABPersonSetImageData 都出现了一些内存泄漏。在发帖之前我一直在寻找解决方案,但我仍然不明白。如果我用
我在 AddressBook 中创建了一个名为“Qref”的自定义属性。我可以使用 [ABPerson properties] 检查它是否存在,并且对于我编写的任何测试应用程序来说它始终存在。 顺便说
我正在阅读 how to work with the iOS AddressBook 上的文档.虽然到目前为止我了解它的一般机制,但我很难理解这个框架特别是如何构建背后的基本原理。我刚刚完成我的第二个
我试图找出 iPhone 地址簿中完整的“个人记录”默认具有哪些属性。 它必须隐藏在 API 的某处 https://developer.apple.com/library/content/docum
我编写了以下方法来准备联系人词典列表:名字、姓氏和电子邮件(如果不存在则忽略) ... // 'filter' is search String NSArray *lContacts =
我想在我的应用程序中添加一个 CNContactPickerViewController。 用户必须点击一个按钮,按钮才会打开,这样他就可以选择一个联系人。 如果用户选择了一个联系人,它的名字将被我的
我在我的 IOS 应用程序中使用 Addressbook 来获取联系人姓名和号码,但奇怪的是它显示了一些联系人的电话号码。 我希望它能显示所有联系人列表和电话号码。 下面是我获取电话号码的代码: -(
我使用以下代码来检索用户选择的人员的电子邮件地址 ABMultiValueRef emailMultiValue = ABRecordCopyValue(person, kABPersonEmailP
我有一个地址簿程序,[1] 添加条目 [2] 删除条目 [3] 更新/编辑条目 [4] 查看所有条目和 [5] 查看特定条目.. 条目存储在数组entry[]中,如下所示: entry[counter
我从 AddressBookUI 中选择名字和姓氏。我正在控制用户名是否存在于我的数组中并且我可以找到它。 我的问题是,我试图在用户点击(选择)后呈现并提醒 View ,但我遇到了这个问题,但是当我想
这是我遇到的问题。非常感谢任何帮助。 代码如下: var addressBook: ABAddressBookRef = { var error: Unmanaged? return
我正在为 iOS 开发并尝试在我的 iOS 项目中链接 AddressBook.framework。所有其他框架都可用并且可以毫无问题地链接。我正在使用 Xcode 6.1,我的开发目标是 OS X
如果想检查人员记录是否有电子邮件地址。所以: ABMultiValueRef emailMultiValue = ABRecordCopyValue(person, kABPersonEmailPro
我正在尝试引用当前地址簿如下: let addressBookRef: ABAddressBook = ABAddressBookCreateWithOptions(nil, nil).takeRet
我是一名优秀的程序员,十分优秀!