C ++和Objective-C内存管理建议

时间:2013-11-20 16:33:31

标签: c++ ios objective-c shared-ptr

我使用shared_ptr作为Objective-C类中的实例变量。所以我想知道内存管理是否正确。

@interface MyClass () {
    @private
    std::shared_ptr<vector<pair<pair<float, float>, pair<float, float>>>> _periods; // In real code I use typedefs
}

这个班级的对象过着漫长而幸福的生活。但我必须经常覆盖_periods

首先,我在_periods中使用辅助函数创建初始init,如下所示。

shared_ptr<vector<pair<pair<float, float>, pair<float, float>>>> periodsScaled(...)
{
    auto periods = std::make_shared<RALG::periods>();
    // ... fill pairs of points
    return periods;
}

然后在MyClass中我有generatePeriods函数覆盖实例变量。

- (void)generatePeriods
{
    _periods.reset(); // Should I really use reset here to delete existing periods?
    _periods = periods(...);
}

我还有-dealloc实施

- (void)dealloc;
{
    _periods.reset(); // Should I reset shared pointer in dealloc?
    // other class-specific routines
}

我的代码在shared_ptr内存管理方面是否正确?我是C ++的新手

0 个答案:

没有答案