Skip to content

Commit 034b652

Browse files
committed
Update Playgrounds and move ParseObjectMutable into ParseObject
1 parent 8ffb95d commit 034b652

File tree

30 files changed

+114
-198
lines changed

30 files changed

+114
-198
lines changed

ParseSwift.playground/Pages/1 - Your first Object.xcplaygroundpage/Contents.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,14 @@ do {
3030
}
3131

3232
//: Create your own value typed `ParseObject`.
33-
struct GameScore: ParseObject, ParseObjectMutable {
33+
struct GameScore: ParseObject {
3434
//: These are required by ParseObject
3535
var objectId: String?
3636
var createdAt: Date?
3737
var updatedAt: Date?
3838
var ACL: ParseACL?
3939
var score: Double?
40+
var originalData: Data?
4041

4142
//: Your own properties.
4243
var points: Int?
@@ -72,6 +73,7 @@ struct GameData: ParseObject {
7273
var updatedAt: Date?
7374
var ACL: ParseACL?
7475
var score: Double?
76+
var originalData: Data?
7577

7678
//: Your own properties.
7779
var polygon: ParsePolygon?
@@ -86,7 +88,7 @@ struct GameData: ParseObject {
8688
original: object) {
8789
updated.polygon = object.polygon
8890
}
89-
if shouldRestoreKey(\.points,
91+
if shouldRestoreKey(\.bytes,
9092
original: object) {
9193
updated.bytes = object.bytes
9294
}
@@ -129,15 +131,10 @@ score.save { result in
129131
changedScore.points = 200
130132
changedScore.save { result in
131133
switch result {
132-
case .success(var savedChangedScore):
134+
case .success(let savedChangedScore):
133135
assert(savedChangedScore.points == 200)
134136
assert(savedScore.objectId == savedChangedScore.objectId)
135137

136-
/*: Note that savedChangedScore is mutable since it's
137-
a var after success.
138-
*/
139-
savedChangedScore.points = 500
140-
141138
case .failure(let error):
142139
assertionFailure("Error saving: \(error)")
143140
}
@@ -158,7 +155,10 @@ var score2ForFetchedLater: GameScore?
158155
otherResults.forEach { otherResult in
159156
switch otherResult {
160157
case .success(let savedScore):
161-
print("Saved \"\(savedScore.className)\" with points \(savedScore.points) successfully")
158+
print("""
159+
Saved \"\(savedScore.className)\" with
160+
points \(String(describing: savedScore.points)) successfully
161+
""")
162162
if index == 1 {
163163
score2ForFetchedLater = savedScore
164164
}
@@ -218,7 +218,7 @@ assert(savedScore?.points == 10)
218218
parse server as opposed to the whole object.
219219
*/
220220
guard var changedScore = savedScore?.mutable else {
221-
fatalError()
221+
fatalError("Should have produced mutable changedScore")
222222
}
223223
changedScore.points = 200
224224

@@ -246,7 +246,7 @@ assert(otherResults != nil)
246246
otherResults!.forEach { result in
247247
switch result {
248248
case .success(let savedScore):
249-
print("Saved \"\(savedScore.className)\" with points \(savedScore.points) successfully")
249+
print("Saved \"\(savedScore.className)\" with points \(String(describing: savedScore.points)) successfully")
250250
case .failure(let error):
251251
assertionFailure("Error saving: \(error)")
252252
}

ParseSwift.playground/Pages/10 - Cloud Code.xcplaygroundpage/Contents.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ struct GameScore: ParseObject {
107107
var updatedAt: Date?
108108
var ACL: ParseACL?
109109
var score: Double?
110+
var originalData: Data?
110111

111112
//: Your own properties.
112113
var points: Int?

ParseSwift.playground/Pages/11 - LiveQuery.xcplaygroundpage/Contents.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ struct GameScore: ParseObject {
1717
var updatedAt: Date?
1818
var ACL: ParseACL?
1919
var score: Double?
20+
var originalData: Data?
2021

2122
//: Your own properties.
2223
var points: Int?

ParseSwift.playground/Pages/12 - Roles and Relations.xcplaygroundpage/Contents.swift

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ struct User: ParseUser {
2020
var updatedAt: Date?
2121
var ACL: ParseACL?
2222
var score: Double?
23+
var originalData: Data?
2324

2425
//: These are required by `ParseUser`.
2526
var username: String?
@@ -50,33 +51,31 @@ struct Role<RoleUser: ParseUser>: ParseRole {
5051
var updatedAt: Date?
5152
var ACL: ParseACL?
5253
var score: Double?
54+
var originalData: Data?
5355

5456
//: Provided by Role.
55-
var name: String
57+
var name: String?
5658

5759
//: Implement your own version of merge
5860
func merge(_ object: Self) throws -> Self {
5961
var updated = try mergeParse(object)
60-
if updated.shouldRestoreKey(\.points,
62+
if updated.shouldRestoreKey(\.name,
6163
original: object) {
62-
updated.points = object.points
64+
updated.name = object.name
6365
}
6466
return updated
6567
}
66-
67-
init() {
68-
self.name = ""
69-
}
7068
}
7169

7270
//: Create your own value typed `ParseObject`.
73-
struct GameScore: ParseObject, ParseObjectMutable {
71+
struct GameScore: ParseObject {
7472
//: These are required by ParseObject
7573
var objectId: String?
7674
var createdAt: Date?
7775
var updatedAt: Date?
7876
var ACL: ParseACL?
7977
var score: Double?
78+
var originalData: Data?
8079

8180
//: Your own properties.
8281
var points: Int?
@@ -253,7 +252,10 @@ do {
253252
savedRole!.queryRoles?.find { result in
254253
switch result {
255254
case .success(let relatedRoles):
256-
print("The following roles are part of the \"\(savedRole!.name) role: \(relatedRoles)")
255+
print("""
256+
The following roles are part of the
257+
\"\(String(describing: savedRole!.name)) role: \(relatedRoles)
258+
""")
257259

258260
case .failure(let error):
259261
print("Error saving role: \(error)")

ParseSwift.playground/Pages/13 - Operations.xcplaygroundpage/Contents.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ struct GameScore: ParseObject {
2020
var updatedAt: Date?
2121
var ACL: ParseACL?
2222
var score: Double?
23+
var originalData: Data?
2324

2425
//: Your own properties.
2526
var points: Int?

ParseSwift.playground/Pages/15 - Custom ObjectId.xcplaygroundpage/Contents.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,14 @@ npm start -- --appId applicationId --clientKey clientKey --masterKey masterKey -
2121
initializeParseCustomObjectId()
2222

2323
//: Create your own value typed `ParseObject`.
24-
struct GameScore: ParseObject, ParseObjectMutable {
24+
struct GameScore: ParseObject {
2525
//: These are required by ParseObject
2626
var objectId: String?
2727
var createdAt: Date?
2828
var updatedAt: Date?
2929
var ACL: ParseACL?
3030
var score: Double?
31+
var originalData: Data?
3132

3233
//: Your own properties.
3334
var points: Int?

ParseSwift.playground/Pages/17 - SwiftUI - Finding Objects.xcplaygroundpage/Contents.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ struct GameScore: ParseObject {
2626
var updatedAt: Date?
2727
var ACL: ParseACL?
2828
var score: Double?
29+
var originalData: Data?
2930

3031
//: Your own properties.
3132
var points: Int?
@@ -118,7 +119,7 @@ struct ContentView: View {
118119
//: Warning - List seems to only work in Playgrounds Xcode 13+.
119120
List(viewModel.results, id: \.id) { result in
120121
VStack(alignment: .leading) {
121-
Text("Points: \(result.points)")
122+
Text("Points: \(String(describing: result.points))")
122123
.font(.headline)
123124
if let createdAt = result.createdAt {
124125
Text("\(createdAt.description)")

ParseSwift.playground/Pages/18 - SwiftUI - Finding Objects With Custom ViewModel.xcplaygroundpage/Contents.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ struct GameScore: ParseObject {
2727
var updatedAt: Date?
2828
var ACL: ParseACL?
2929
var score: Double?
30+
var originalData: Data?
3031

3132
//: Your own properties.
3233
var points: Int?
@@ -112,7 +113,7 @@ struct ContentView: View {
112113
//: Warning - List seems to only work in Playgrounds Xcode 13+.
113114
List(viewModel.objects, id: \.id) { object in
114115
VStack(alignment: .leading) {
115-
Text("Points: \(object.points)")
116+
Text("Points: \(String(describing: object.points))")
116117
.font(.headline)
117118
if let createdAt = object.createdAt {
118119
Text("\(createdAt.description)")

ParseSwift.playground/Pages/19 - SwiftUI - LiveQuery.xcplaygroundpage/Contents.swift

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@ struct GameScore: ParseObject {
2525
var updatedAt: Date?
2626
var ACL: ParseACL?
2727
var score: Double?
28+
var originalData: Data?
2829

2930
//: Your own properties.
30-
var points: Int = 0
31+
var points: Int? = 0
3132
var location: ParseGeoPoint?
3233
var name: String?
3334

@@ -84,15 +85,15 @@ struct ContentView: View {
8485
switch event.event {
8586

8687
case .entered(let object):
87-
Text("Entered with points: \(object.points)")
88+
Text("Entered with points: \(String(describing: object.points))")
8889
case .left(let object):
89-
Text("Left with points: \(object.points)")
90+
Text("Left with points: \(String(describing: object.points))")
9091
case .created(let object):
91-
Text("Created with points: \(object.points)")
92+
Text("Created with points: \(String(describing: object.points))")
9293
case .updated(let object):
93-
Text("Updated with points: \(object.points)")
94+
Text("Updated with points: \(String(describing: object.points))")
9495
case .deleted(let object):
95-
Text("Deleted with points: \(object.points)")
96+
Text("Deleted with points: \(String(describing: object.points))")
9697
}
9798
} else {
9899
Text("Not subscribed to a query")

ParseSwift.playground/Pages/2 - Finding Objects.xcplaygroundpage/Contents.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ struct GameScore: ParseObject {
1919
var updatedAt: Date?
2020
var ACL: ParseACL?
2121
var score: Double?
22+
var originalData: Data?
2223

2324
//: Your own properties.
2425
var points: Int?

0 commit comments

Comments
 (0)