2016-04-07 9 views
0

データを保持するためにバックエンドレスを使用するアプリケーションを作成しています。彼らはhereに言ったように、私はすべてが繋がっています。ここでバックエンドレスメソッドpersistenceServiceが呼び出されたときにアプリケーションがクラッシュする

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

は、ファイルのコードです:ここで

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クラスです:

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? 
} 
persistenceServiceメソッドが呼び出されるしかし

、アプリがクラッシュします

クラッシュの原因は何ですか?あなたはクローンを作成し、コードをテストすることができますので、これはレポです

enter image description here

:ここ

は、スキーマのスクリーンショットです。クラッシュを再現するには

https://github.com/calebkleveter/chatter

;:私はここに問題のコードは異なっているカップルの変更を行いましたアプリを起動し、サインインページのサインアップボタンを選択し、すべてのフィールドに適切な情報を入力してから、「サインアップ」をタップします。ボタン。アプリがクラッシュします。

アップデート:私はこのラインで

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

をブレークポイントを配置し、それに踏んでログ出力を得ることができた

それがクラッシュし、I刚性、私はその後、アプリを通じて段階

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

あなたの問題は今解決されましたか? – Scadge

+0

@Scadge、それはクラッシュを解決しませんでした。それは私が得ていた出力を解決しました。私は私がそれのために作ったGitHubリポジトリに私の質問のリンクを追加しました。 –

+0

ログを受け取っていますか?あなたのプロジェクトには多くの制約があり、それらのいくつかは矛盾しているようです。 とにかく、これはバックエンドレスには関係していないようです。 – Scadge

答えて

0

は、私が誤ってAPP_IDSECRET_KEY変数SAを与え判明:これを得ました私の価値。すべてが正常に動作していることを修正した後!

関連する問題