Ios 从阵列中删除对象而不清除内存使用

Ios 从阵列中删除对象而不清除内存使用,ios,objective-c,memory-management,nsmutablearray,automatic-ref-counting,Ios,Objective C,Memory Management,Nsmutablearray,Automatic Ref Counting,我的应用程序中有一个MyDayObject对象的NSMutableArray @property (nonatomic, strong) NSMutableArray *days; 我还保留了“当前”日的链接 MyDayObject的代码是 #import <Foundation/Foundation.h> @interface MyDayObject : NSObject @property (nonatomic, strong) NSArray *notes; @prope

我的应用程序中有一个
MyDayObject
对象的
NSMutableArray

@property (nonatomic, strong) NSMutableArray *days;
我还保留了“当前”日的链接

MyDayObject
的代码是

#import <Foundation/Foundation.h>

@interface MyDayObject : NSObject

@property (nonatomic, strong) NSArray *notes;
@property (nonatomic, strong) NSDate *date;

@end
当我在
days
mutable数组中添加新的天数时,我可以看到内存在增加

当我模拟内存不足警告时,我可以看到我的函数正在被调用

但当我运行它时,内存使用率根本没有下降

它保持在我添加东西时的水平

你知道我该怎么清除这些记忆吗

注意


我删除了我以前的问题,这是类似的,但基于链表。我将用法改为
NSArray
,但我现在得到了这种行为。

检查您的
MyDayObject
实例是否收到
dealloc
消息。在其
dealloc
方法中放置断点或
NSLog
。好的,这样做了。他们肯定是被交易了。我想知道我是否需要在移除对象后等待它清除内存?奇怪?我不会担心的。作为开发人员,我们所能做的就是确保释放我们的对象。您可以尝试发送两次内存警告或尝试发送真实内存警告(非模拟)。好的,谢谢。我会留心的,但暂时不要看。比例呢?我的意思是也许MyDayObject它太小了,以至于你看不到分配图有什么不同。也许有更大的有序对象。然而,您可以使分配计数保留计数,并检查对象是否已释放和解除分配。尝试设置基线堆快照并检查差异。
#import <Foundation/Foundation.h>

@interface MyDayObject : NSObject

@property (nonatomic, strong) NSArray *notes;
@property (nonatomic, strong) NSDate *date;

@end
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];

    [self.days removeAllObjects];

    [self.days addObject:self.currentDay];
}