【问题标题】:Find out memory leak?找出内存泄漏?
【发布时间】:2011-07-12 12:38:09
【问题描述】:

我是 iphone 应用程序的新手。现在这是我的第一个应用程序,应用程序已安装但未运行? 我写这段代码它显示内存泄漏。请找出来。提前谢谢。

ABRecordRef ref = CFArrayGetValueAtIndex(all, i);

CFStringRef *firstName = (CFStringRef *)ABRecordCopyValue(ref, kABPersonFirstNameProperty);
NSLog(@"Name %@", firstName);
contact.strFirstName = (NSString*)firstName;

CFStringRef *lastName = (CFStringRef *)ABRecordCopyValue(ref, kABPersonLastNameProperty);
NSLog(@"Name %@", lastName);
contact.strLastName = (NSString*)lastName;
contact.contactName = [NSString stringWithFormat:@"%@ %@",(NSString *)firstName,lastName];
NSLog(@"Name %@", contact.contactName);

ABMutableMultiValueRef phoneNumbers = ABRecordCopyValue(ref, kABPersonPhoneProperty);
for(CFIndex j = 0; j < ABMultiValueGetCount(phoneNumbers); j++)
{
    CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phoneNumbers, j);

    NSString *phoneNumber = (NSString *) phoneNumberRef;
    contact.strMobileNo = phoneNumber;
    NSLog(@"phoneNO is %@", phoneNumber);

    CFRelease(phoneNumberRef);

}       

ABMultiValueRef emails = ABRecordCopyValue(ref, kABPersonEmailProperty);
for(CFIndex k = 0; k < ABMultiValueGetCount(emails); k++)
{
    CFStringRef emailRef = ABMultiValueCopyValueAtIndex(emails, k);
    NSString *mailid = (NSString *) emailRef;
    contact.strMail = mailid;
    NSLog(@"Email is %@", mailid);

    CFRelease(emailRef);

}

CFRelease(emails);
CFRelease(phoneNumbers);

【问题讨论】:

  • 为什么不使用 xcode 的内存泄漏查找器?
  • 我用过,但我没有 bcz 我是这项技术的新手

标签: iphone objective-c ios4 abaddressbook


【解决方案1】:

您在名字和姓氏上使用ABRecordCopyValue,这意味着您也需要CFRelease

【讨论】:

  • hai,我发布了这两个名字和姓氏的应用程序崩溃了......所以请帮助我......
  • 你需要在NSLog(@"Name %@", contact.contactName);后面加上CFRelease 你是在哪里发布的?
【解决方案2】:

CFRelease 是一种可行的方法(正如@Joe 和@jamapag 已经回答的那样).. 我想补充一点,XCode 有一些不错的功能,比如 cmd + shift + a 给你一个静态内存分析器.. 你也可以使用运行 -> 使用性能工具运行,然后使用分配或泄漏来动态分析我们的内存管理。

【讨论】:

  • 感谢您的建议。我会检查一次
【解决方案3】:

你需要添加:

CFRelease(firstName);
CFRelease(lastName);

【讨论】:

  • hai,我发布了这两个名字和姓氏的应用程序崩溃了......所以请帮助我......
猜你喜欢
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 2018-04-07
  • 1970-01-01
相关资源
最近更新 更多