@@ -32,6 +32,13 @@ struct User: ParseUser {
3232 var score : GameScore ?
3333 var targetScore : GameScore ?
3434 var allScores : [ GameScore ] ?
35+
36+ //: Custom init for signup.
37+ init ( username: String , password: String , email: String ) {
38+ self . username = username
39+ self . password = password
40+ self . email = email
41+ }
3542}
3643
3744//: Create your own value typed `ParseObject`.
6774 queue and returns to specified callbackQueue.
6875 If no callbackQueue is specified it returns to main queue.
6976*/
70- User . login ( username: " hello " , password: " world " ) { results in
77+ User . login ( username: " hello " , password: " world " ) { result in
7178
72- switch results {
79+ switch result {
7380 case . success( let user) :
7481
7582 guard let currentUser = User . current else {
76- assertionFailure ( " Error: current user currently not stored locally " )
83+ assertionFailure ( " Error: current user not stored locally " )
7784 return
7885 }
7986 assert ( currentUser. hasSameObjectId ( as: user) )
@@ -93,9 +100,9 @@ User.current?.customKey = "myCustom"
93100User . current? . score = GameScore ( score: 12 )
94101User . current? . targetScore = GameScore ( score: 100 )
95102User . current? . allScores = [ GameScore ( score: 5 ) , GameScore ( score: 8 ) ]
96- User . current? . save { results in
103+ User . current? . save { result in
97104
98- switch results {
105+ switch result {
99106 case . success( let updatedUser) :
100107 print ( " Successfully save custom fields of User to ParseServer: \( updatedUser) " )
101108 case . failure( let error) :
@@ -134,6 +141,36 @@ do {
134141 print ( " Error logging out: \( error) " )
135142}
136143
144+ //: To add additional information when signing up a user,
145+ //: you should create an instance of your user first.
146+ var newUser = User ( username: " parse " , password: " aPassword* " , email: " parse@parse.com " )
147+ //: Add any other additional information.
148+ newUser. targetScore = . init( score: 40 )
149+ newUser. signup { result in
150+
151+ switch result {
152+ case . success( let user) :
153+
154+ guard let currentUser = User . current else {
155+ assertionFailure ( " Error: current user not stored locally " )
156+ return
157+ }
158+ assert ( currentUser. hasSameObjectId ( as: user) )
159+ print ( " Successfully signed up as user: \( user) " )
160+
161+ case . failure( let error) :
162+ print ( " Error logging in: \( error) " )
163+ }
164+ }
165+
166+ //: Logging out - synchronously.
167+ do {
168+ try User . logout ( )
169+ print ( " Successfully logged out " )
170+ } catch let error {
171+ print ( " Error logging out: \( error) " )
172+ }
173+
137174//: Verification Email - synchronously.
138175do {
139176 try User . verificationEmail ( email: " hello@parse.org " )
0 commit comments