2016-04-07 24 views
0

Verileri tutmak için Backendless kullanan bir uygulama yapıyorum. here'a söyledikleri gibi herşeyi aldım.Backendless yöntemi persistenceService çağrıldığında uygulama çöküyor

Ancak persistenceService yöntemi denir uygulama kilitleniyor:

import Foundation 

// Class for data that gets sent to the Backendless database 

class UserSchema: NSObject { 

    var zip: String? 
    var userName: String? 
    var password: String? 
    var firstName: String? 
    var lastName: String? 
    var email: String? 
    var dateOfBirth: String? 
} 
:

İşte
import UIKit 

class SignUpViewController: UIViewController { 

    @IBOutlet weak var userName: UITextField! 
    @IBOutlet weak var email: UITextField! 
    @IBOutlet weak var password: UITextField! 
    @IBOutlet weak var firstName: UITextField! 
    @IBOutlet weak var lastName: UITextField! 
    @IBOutlet weak var dateOfBirth: UITextField! 
    @IBOutlet weak var zip: UITextField! 

    let backendless = Backendless.sharedInstance() 
    // Create a new instance of UserSchema for the use of createing a new user. 
    let user = UserSchema() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

    @IBAction func signUp() { 

     // Check to make sure all fields have proper values and are not nill. 
     if userName.text != nil && email.text != nil && password.text != nil && firstName.text != nil 
      && lastName.text != nil && dateOfBirth != nil && zip.text != nil && Int(zip.text!) != nil { 

       // Asign text from fields to the variables for the new user. 
       user.userName = userName.text 
       user.email = email.text 
       user.password = password.text 
       user.firstName = firstName.text 
       user.lastName = lastName.text 
       user.dateOfBirth = dateOfBirth.text 
       user.zip = zip.text 

       backendless.persistenceService.of(UserSchema.ofClass()).save(user) 

       shouldPerformSegueWithIdentifier("succesfulSignUp", sender: nil) 

     } else { 
      // Alert the user if any of the values are nil so they can fix the issue. 
      let emptyTextFieldAlert = UIAlertController(title: "Empty Field", message: "Please make sure all fields have proper values", preferredStyle: .Alert) 
      emptyTextFieldAlert.addAction(UIAlertAction(title: "OK", style: .Default, handler: { action -> Void in 
       // Do nothing 
      })) 
      self.presentViewController(emptyTextFieldAlert, animated: true, completion: nil) 

     } 
    } 
} 

UserSchema sınıftır: Burada

backendless.persistenceService.of(UserSchema.ofClass()).save(user) 

dosya için koddur

Kilitlenme nedenleri nelerdir? Eğer klonlamak ve kodu test edebilmeniz için bir Repo olduğunu

enter image description here

: Burada

şemanın bir ekran resmi. Bahse konu burada kodundan farklı olan bir kaç değişiklikler yaptık:

https://github.com/calebkleveter/chatter

kazasında yeniden oluşturmak için; Uygulamayı çalıştırın, sayfadaki kayıt ol düğmesini seçin, tüm bilgileri uygun bilgilerle doldurun ve ardından "Kaydol!" a basın. buton. Uygulama kilitlenecek.

Güncelleme:

ben bu hat

backendless.persistenceService.of(UserSchema.ofClass()).save(user) 

bir fren noktasını yerleştirerek Ve içine adım atarak bir ölçüm sonucu başardı, o zaman uygulaması yoluyla basan e kadar, düştüğü ve ben

2016-04-11 12:04:09.025 Chatter[21686:11538370] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]' 
*** First throw call stack: 
(
    0 CoreFoundation      0x0000000106c64e65 __exceptionPreprocess + 165 
    1 libobjc.A.dylib      0x00000001090f5deb objc_exception_throw + 48 
    2 CoreFoundation      0x0000000106b23652 -[__NSPlaceholderArray initWithObjects:count:] + 290 
    3 CoreFoundation      0x0000000106b807e4 +[NSArray arrayWithObjects:count:] + 52 
    4 Chatter        0x00000001053ffc53 -[PersistenceService save:] + 409 
    5 Chatter        0x00000001052e2eb5 _TFC7Chatter20SignUpViewController6signUpfS0_FT_T_ + 8709 
    6 Chatter        0x00000001052e3452 _TToFC7Chatter20SignUpViewController6signUpfS0_FT_T_ + 34 
    7 UIKit        0x0000000107bd3194 -[UIApplication sendAction:to:from:forEvent:] + 92 
    8 UIKit        0x0000000107d426fc -[UIControl sendAction:to:forEvent:] + 67 
    9 UIKit        0x0000000107d429c8 -[UIControl _sendActionsForEvents:withEvent:] + 311 
    10 UIKit        0x0000000107d41af8 -[UIControl touchesEnded:withEvent:] + 601 
    11 UIKit        0x0000000107c4249b -[UIWindow _sendTouchesForEvent:] + 835 
    12 UIKit        0x0000000107c431d0 -[UIWindow sendEvent:] + 865 
    13 UIKit        0x0000000107bf1b66 -[UIApplication sendEvent:] + 263 
    14 UIKit        0x0000000107bcbd97 _UIApplicationHandleEventQueue + 6844 
    15 CoreFoundation      0x0000000106b90a31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    16 CoreFoundation      0x0000000106b8695c __CFRunLoopDoSources0 + 556 
    17 CoreFoundation      0x0000000106b85e13 __CFRunLoopRun + 867 
    18 CoreFoundation      0x0000000106b85828 CFRunLoopRunSpecific + 488 
    19 GraphicsServices     0x000000010b743ad2 GSEventRunModal + 161 
    20 UIKit        0x0000000107bd1610 UIApplicationMain + 171 
    21 Chatter        0x00000001052ea13d main + 109 
    22 libdyld.dylib      0x0000000109c4692d start + 1 
    23 ???         0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 
+0

Yani sorun şimdi çözüldü mü? – Scadge

+0

@Scadge, hayır, bu çökmeyi çözmedi. Aldığım çıktıyı çözdü. Sorumlulukta yaptığım bir GitHub repo'ya bir bağlantı ekledim. –

+0

Herhangi bir kayıt aldınız mı? Projenizde çok fazla kısıtlama bulunduğunu ve bunların bir kısmının çelişkili olduğunu düşünüyor. Neyse, bu Backendless ile ilgili görünmüyor. – Scadge

cevap

0

yanlışlıkla APP_ID ve SECRET_KEY değişkenler sa verdi çıkıyor: Bu got bana değer. Her şey yolunda gittikten sonra iyi çalışıyor!

İlgili konular