

前提・実現したいこと  
swiftで日記アプリを作っています。  
xcodeのバージョンは7.3.1、swiftは2.2です。

発生している問題・エラーメッセージ  
xcodeでコードを書き始めると、作業にならないほど頻繁にSourceKitServiceがクラッシュしてしまいます。

いろいろと試す中で、mBaaSのニフティクラウドモバイルバックエンドのデータ取得のメソッド

[code]

    query.findObjectsInBackgroundWithBlock({ (objects, error) in
    
[/code]

をコメントアウトするとクラッシュしなくなることがわかりました。  
問題の箇所はわかったのですが、どのように修正すれば良いのかがわかりません。何かお分かりになられましたら教えてください。よろしくお願いします。  
問題と思われるコードの全体は以下です。

[code]

    let query = NCMBQuery(className:"user")
            query.whereKey("userName", equalTo: user[0].uuid)
    
            //soucekitのクラッシュの原因はここ！！ここが原因なのは確かなので、さらに詳しくチェックしていく！！
            query.findObjectsInBackgroundWithBlock({(objects, error) in
    
                if error == nil{
    
                    objects[0].setObject(self.userNameTextField.text, forKey: "ownerName")
                    objects[0].setObject(self.userSelectWork, forKey: "works")
                    objects[0].setObject(self.userSelectWorksYear, forKey: "worksYear")
                    objects[0].setObject(self.myGoalTextView.text, forKey: "myGoal")
    
                    if self.pickedPhoto != nil{
    
                        objects[0].setObject(self.targetFile?.name, forKey: "userPhotoName")
    
                    }
    
    
                    objects[0].save(&saveError)
    
                    let realm = try!Realm()
                    let user = User()
                    user.id = 1
                    user.userName = self.userNameTextField.text
                    user.works = self.userSelectWork
                    user.worksYear = self.userSelectWorksYear!
                    user.myGoal = self.myGoalTextView.text
    
                    try!realm.write({
    
    
    
                    })
    
                    print("ひ")
    
                    let fileName = NSUUID().UUIDString + ".jpg"
                    let filePath = (self.path! as NSString).stringByAppendingPathComponent(fileName)
    
                    if self.photo?.writeToFile(filePath, atomically: true) == false{
    
    
                        self.errorMessage()
    
    
                    }else{
    
                        print("写真をファイルに保存成功")
                    }
    
    
                    //写真があるならば
                    if self.targetFile != nil{
    
                        //更新するデータの写真と比べて、同じものではないならば
                        if self.targetFile?.name != objects[0]["userPhotoName"] as! String{
    
                            self.targetFile?.saveInBackgroundWithBlock({ (error:NSError!) in
    
                                if error == nil{
    
                                     self.navigationController?.popToRootViewControllerAnimated(true)
    
                                      }else{
    
                                    self.errorMessage()
    
                                }
    
                                }, progressBlock: { (percentDone) in
    
    
                            })
    
                        }
    
    
    
                    }else{
                        //写真がないなら
                        self.navigationController?.popToRootViewControllerAnimated(true)
    
                    }
    
    
    
    
                }else{
    
                    //エラー処理
                    self.errorMessage()
                }
            })
        }
    
[/code]

補足  
先日、同じ問題に関する質問をさせていただき未解決なのですが、調べていくうちにさらに質問したい事柄が出てきたので新しく投稿させていただきました。  
[SourceKitService
が予期しない理由で終了しました。というエラーの対処方法](https://ja.stackoverflow.com/questions/24598/sourcekitservice-%E3%81%8C%E4%BA%88%E6%9C%9F%E3%81%97%E3%81%AA%E3%81%84%E7%90%86%E7%94%B1%E3%81%A7%E7%B5%82%E4%BA%86%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F-%E3%81%A8%E3%81%84%E3%81%86%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95)  
また、他サイトでも質問させていただいていますが、未解決の状態なので質問させていただきました。  
<https://teratail.com/questions/34217?complete=>


CC BY-SA 3.0
2016-05-06T10:05:02.667
24608
2016-05-07T00:35:29.227
2017-04-13T12:52:38.920
-1
10791
question
swift ios xcode baas
NCMBのfindObjectsInBackgroundWithBlockを使うとSourceKitServiceがクラッシュしてしまう


findObjectsInBackgroundWithBlockで取得したobjectsの中身をobjects[0].userNameで取り出せると間違っており、正しくはobjects[0].objectsForKey()でした。この間違ったコードがsourceKitの頻繁なクラッシュを引き起こしていました。


CC BY-SA 3.0
2016-05-07T00:35:29.227
24619
2016-05-07T00:35:29.227
10791
24608
answer