【问题标题】:Can I release an object which was added to a NSMutableArray or does this affect a crash?我可以释放一个添加到 NSMutableArray 的对象还是会影响崩溃?
【发布时间】:2011-04-01 02:02:44
【问题描述】:

我有一个关于NSMutableArray 的内存管理的问题。我创建了一个自定义类的对象并将这个对象添加到NSMutableArray。这会自动保留,以便我可以释放我创建的对象吗?

谢谢!

【问题讨论】:

    标签: ios memory-management nsmutablearray


    【解决方案1】:

    是的,它会自动保留。您应该在将对象添加到数组后释放它(或使用 autorelease

    例如:

    NSMutableArray *array = [[NSMutableArray alloc] init];
    
    [array addObject:[[[MyClass alloc] init] autorelease]];
    
    // or
    
    MyClass * obj = [[MyClass alloc] init];
    
    [array addObject:obj];
    
    [obj release];
    

    【讨论】:

      【解决方案2】:

      是的,例如,您可以这样做:

      NSMutableArray *array = [[NSMutableArray alloc] init];
      NSString *someString = @"Abc";
      [array addObject:someString];
      [someString release];
      NSLog(@"Somestring: %@", [array objectAtIndex:0]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 1970-01-01
        • 2017-07-13
        • 1970-01-01
        相关资源
        最近更新 更多