現在、Parse の奇妙な動作が発生しています。私のアプリは数週間の開発で問題なく動作し、プロジェクトのセットアップ以来、「NSInternalInconsistencyException」を発生させることはありませんでした。しかし、私は ProfileViewController に PFImageView を実装しました (UITabBarController の 2 番目の VC、したがって、ユーザーがログインしている場合にのみ表示されます)、私のアプリはこのエラーでクラッシュし続けます:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'You have to call setApplicationId:clientKey: on Parse to configure Parse.'
もちろん、Parse の設定をfunc application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
次の場所で確認しました。
Parse.setApplicationId("myApplicationID", clientKey: "myClientKey")
Parse.enableLocalDatastore()
// This is where I used to activate Parse, but SO and Parse forums kept
// saying you should try to do this at the very beginning
ParseCrashReporting.enable()
PFAnalytics.trackAppOpenedWithLaunchOptionsInBackground(launchOptions, block: nil)
私の ProfileViewController では、これが Parse からイメージをロードする場所です。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
userImageView.file = user["profilePicture"] as PFFile
userImageView.loadInBackground { (image, error) -> Void in
if error != nil {
JSSAlertView().danger(self, title: "Loading Image Failed", text: "Please check your connection")
} else {
self.userImageView.image = image
}
}
}
画像のインスタンス変数の設定:
var image: UIImage? {
// If User picked a new image, automatically update imageView
didSet {
userImageView.image = image
// Convert image to PNG and save in in Parse-Cloud
let imageData = UIImagePNGRepresentation(image)
let imageFile = PFFile(name: "profilePicture.png", data: imageData)
// Attach this file to our user
user["profilePicture"] = imageFile
user.saveInBackgroundWithBlock { (success, error) -> Void in
if error != nil {
JSSAlertView().danger(self, title: "Failed To Save Image", text: "Please try again saving your image!")
}
}
userImageView.file = user["profilePicture"] as PFFile
}
}
これらの間にどのような関係があるのか わかりませんが、プロジェクト全体で他に何も変更しませんでした.
よろしく、