Reputation: 73
I suppose the answer is quite easy, but i did not manage to find an answer:
I am using a nscollectionview whos content is managed via an nsarraycontroller. adding objects works as intended but i do not find any method to remove all objects. there are several remove methods but something like .clear, .empty or .removeAll is not available.
Help appreciated :-)
Upvotes: 0
Views: 1407
Reputation: 17382
Use
[myArrayController setContent:nil];
or Swift
myArrayController.content = nil
to purge.
So typically if resetting an array controller programmatically
-(void)setTargetObjects:(NSArray *)objects {
[self.arrayController setContent:nil];
[self.arrayController addObjects:objects];
}
or Swift
func setTargetObjects(objects:[AnyObject]) {
self.arrayController.content = nil
self.arrayController.addObjects(objects)
}
Upvotes: 3
Reputation: 6612
You should be able to do what you want like so :
let range : NSRange = NSMakeRange(0, yourArrayController.arrangedObjects.count)
let indexSet : NSIndexSet = NSIndexSet(indexesInRange: range)
yourArrayController.removeObjectsAtArrangedObjectIndexes(indexSet)
Upvotes: 4