iphone - Objective-C 返回一个数组 - 内存问题

标签 iphone objective-c ios memory-leaks

我想返回一个包含三个对象的 NSMutableArray。这是我所拥有的:

NSMutableArray *output = [[NSMutableArray alloc] init];
NSString *a = [[NSString alloc] initWithFormat:@"%i",aa];
NSString *b = [[NSString alloc] initWithFormat:@"%i",bb];
NSString *c = [[NSString alloc] initWithFormat:@"%i",cc];

[output addObject:a];
[output addObject:b];
[output addObject:c];

return output;

但是我遇到了内存泄漏。怎么了?

最佳答案

第 1 期:

尝试这种方式,然后 NSString 将被释放。[NSString stringWithFormat:@"%@", aa];还要注意格式占位符:

  • %i 表示整数
  • %d 用于其他号码
  • %@ 用于字符串和更多对象。


  • 第二期:

    并使用您的输出变量进行自动释放,因为函数中的最后一个操作是重置。
    NSMutableArray *output = [[[NSMutableArray alloc] init] autorelease];
    

    完整的片段:
    NSMutableArray *output = [[[NSMutableArray alloc] init] autorelease];
    NSString *a = [NSString stringWithFormat:@"%@", aa];
    NSString *b = [NSString stringWithFormat:@"%@", bb];
    NSString *c = [NSString stringWithFormat:@"%@", cc];
    
    
    [output addObject:a];
    [output addObject:b];
    [output addObject:c];
    
    return output;
    

    干杯

    关于iphone - Objective-C 返回一个数组 - 内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4654536/

    相关文章:

    iphone - NSForegroundColorAttributeName 在 Swift 中不起作用?

    objective-c - 为什么它不崩溃?

    ios - 是否有 ios-ntp 的替代方法来获取原子/当前时间 ios?

    objective-c - 更改 xib 文件的背景颜色?

    ios - 如何让定位音频在 SceneKit 中工作?

    ios - Xcode 找不到框架

    ios - 捕获 iOS 3D Touch 光标

    iphone - 将大型 XML 文件转换为 SQLite 文件的最快方法是什么?

    iphone - 有人可以将从应用商店下载的 ipa 重新分发给越狱用户吗?

    ios - iOS App 中的自定义证书