データを保持するためにバックエンドレスを使用するアプリケーションを作成しています。彼らは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
メソッドが呼び出されるしかし
、アプリがクラッシュします
クラッシュの原因は何ですか?あなたはクローンを作成し、コードをテストすることができますので、これはレポです
:ここ
は、スキーマのスクリーンショットです。クラッシュを再現するには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)
あなたの問題は今解決されましたか? – Scadge
@Scadge、それはクラッシュを解決しませんでした。それは私が得ていた出力を解決しました。私は私がそれのために作ったGitHubリポジトリに私の質問のリンクを追加しました。 –
ログを受け取っていますか?あなたのプロジェクトには多くの制約があり、それらのいくつかは矛盾しているようです。 とにかく、これはバックエンドレスには関係していないようです。 – Scadge