Skip to content

Commit 2cfb125

Browse files
committed
Reselection
1 parent 4f7ca99 commit 2cfb125

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

CoreDataQueryInterface/Selecting.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,14 @@ extension ExpressionQueryType {
4040
builder.returnsDistinctResults = true
4141
return ExpressionQuery(builder: builder)
4242
}
43+
44+
/**
45+
Resets the list of selected expressions
46+
*/
47+
public func reselect() -> ExpressionQuery<QueryEntityType> {
48+
var builder = self.builder
49+
builder.expressions = []
50+
return ExpressionQuery(builder: builder)
51+
}
4352

4453
}

CoreDataQueryInterfaceTests/SelectionAndGroupingTests.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,12 @@ class SelectionTests : BaseTestCase {
4848
let query = managedObjectContext.from(Employee).filter(employee.firstName.equalTo("Isabella", options: .CaseInsensitivePredicateOption))
4949
XCTAssertTrue(try! query.exists())
5050
}
51+
52+
func testReselection() {
53+
let employee = Employee.EntityAttributeType()
54+
let query = managedObjectContext.from(Employee).select(employee.lastName).order(descending: employee.firstName)
55+
let employees = try! query.reselect().select(employee.firstName).all()
56+
let firstName = employees.first!["firstName"]! as! String
57+
XCTAssertEqual(firstName, "Lana")
58+
}
5159
}

0 commit comments

Comments
 (0)