我使用NSCollectionView
填充[collectionView setContent:data];
,其中data
是NSArray
,其中包含所有相同的自定义NSObject
子类的对象。集合视图的项原型是标准NSCollectionViewItem
,而不是子类。使用我的NSObject
子类的绑定填充集合项的视图。
现在问题是,在使用快照分析我的应用时,我发现使用集合视图打开窗口时内存会大大增加。仪器将此内存增加精确定位到[collectionView setContent:data];
行。这个记忆永远不会被回收。有什么想法吗?
编辑:我像这样访问数据对象:
NSArray *data = [[[[MWWeatherController sharedInstance] cachedData] objectForKey:[NSString stringWithFormat:@"%u",index]] objectForKey:@"daily"];
答案 0 :(得分:1)
您是否为CollectionView KVO提供了ViewController?
CollectionView的XIB是否为ArrayController?
将XIB的CollectionView绑定到ArrayController的arrangeObjects,并通过ViewController方法设置Items,例如: setMyCustomObjectsArray,它再次设置ArrayController观察到的数组。
确保在自定义对象的dealloc方法中正确释放所有内容。
答案 1 :(得分:0)
我认为您不会在您的范围内发布数据...如果您拥有'数据'对象,请确保将其发布。
有些问题可以更好地回答 -