我使用 MonkSVG 库,它使用boost::shared_ptr
类型(据我所知std::shared_ptr
以同样的方式工作)。
据我了解,我不需要自己从中释放内存。
我从库示例中创建了一个单独UIViewController
的代码,该示例定义了 shared_ptr 变量并推送/弹出此视图控制器。但似乎内存有问题,或者这个变量不像我想的那样工作。问题出在shared_ptr
对象的析构函数中:
我认为shared_ptr
每次弹出视图控制器时都必须调用该对象的析构函数。但是当我只为这个变量分配另一个实例时,它会被调用。它看起来像下面这样:
推/弹出 | shared_ptr | 通常的对象
推 | - | -
流行 | - | 析构函数
推 | 析构函数 | -
流行 | - | 析构函数
等等
这是它的正常行为吗?