Micha El
Micha El

Reputation: 73

How to empty a NSArrayController in swift

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

Answers (2)

Warren Burton
Warren Burton

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

lchamp
lchamp

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

Related Questions