アプリケーションをビルドするときに「シグナルによってセグメントが失敗しました:11」というエラーが発生しました。このエラーを発生させると思われるコードは、カスタムクラスのviewDidLoadメソッドに表示されます。このクラスのコード全体は以下のとおりです。コマンドがシグナルセグメンテーション違反で失敗しました11 SDKまたはFacebookグラフAPIで解析された原因を解析しました
import UIKit
import Bolts
import Parse
import FBSDKLoginKit
import FBSDKCoreKit
import FBSDKShareKit
import ParseFacebookUtilsV4
class SignUpViewController: UIViewController {
@IBAction func signUp(sender: AnyObject) {
}
@IBOutlet weak var userImage: UIImageView!
@IBOutlet weak var interestedInWomen: UISwitch!
override func viewDidLoad() {
super.viewDidLoad()
let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, gender"])
graphRequest.startWithCompletionHandler({
(connection, result, error) -> Void in
if error != nil {
print(error)
} else if let result = result {
PFUser.currentUser()?["gender"] = result["gender"]!
PFUser.currentUser()?["name"] = result["name"]!
PFUser.currentUser()?.saveInBackground()
var userId = result["id"] as String
var facebookProfilePictureUrl = "https://graph.facebook.com/" + userId + "picture?type=large"
if let fbipicUrl = NSURL(string: facebookProfilePictureUrl) {
if let data = NSData(contentsOfURL: fbipicUrl) {
self.userImage = UIImage(data: data)
}
}
}
})
}
ここで見ることができ、エラー・ログからのいくつかの出力は、(複数の出力がありますが、この部分は、現時点では私に関連すると思われるものです):
1. While type-checking 'viewDidLoad' at /Users/oivind/Dropbox/søndagsåpent/ParseServerStarterProject/ParseStarterProject/SignUpViewController.swift:28:14
2. While type-checking expression at [/Users/oivind/Dropbox/søndagsåpent/ParseServerStarterProject/ParseStarterProject/SignUpViewController.swift:33:9 - line:62:10] RangeText="graphRequest.startWithCompletionHandler({
(connection, result, error) -> Void in
if error != nil {
print(error)
} else if let result = result {
PFUser.currentUser()?["gender"] = result["gender"]!
PFUser.currentUser()?["name"] = result["name"]!
PFUser.currentUser()?.saveInBackground()
var userId = result["id"] as String
var facebookProfilePictureUrl = "https://graph.facebook.com/" + userId + "picture?type=large"
if let fbipicUrl = NSURL(string: facebookProfilePictureUrl) {
if let data = NSData(contentsOfURL: fbipicUrl) {
self.userImage = UIImage(data: data)
}
}
}
})"
3. While type-checking declaration 0x7ffb2a8175b8 at /Users/oivind/Dropbox/søndagsåpent/ParseServerStarterProject/ParseStarterProject/SignUpViewController.swift:47:17
4. While type-checking expression at [/Users/oivind/Dropbox/søndagsåpent/ParseServerStarterProject/ParseStarterProject/SignUpViewController.swift:47:30 - line:47:46] RangeText="result["id"] as S"
5. While type-checking expression at [/Users/oivind/Dropbox/søndagsåpent/ParseServerStarterProject/ParseStarterProject/SignUpViewController.swift:47:30 - line:47:41] RangeText="result["id"]"
を、私は、最新のリリースを使用していますXcode 7.3(ベータ版はありません)
私がこれまでに発見したことは、私は、コードのこの部分をコメントアウトした場合、アプリは完全に罰金構築することです。
var userId = result["id"] as String
var facebookProfilePictureUrl = "https://graph.facebook.com/" + userId + "picture?type=large"
if let fbipicUrl = NSURL(string: facebookProfilePictureUrl) {
if let data = NSData(contentsOfURL: fbipicUrl) {
self.userImage = UIImage(data: data)
}
}
をしかし、私は私の人生のために実際に発生しているかを把握することはできませんこのエラー。
これは私の最初の質問ですので、しばらく検索していますが、正しい方向に私を導いてくれる同様のスレッドが見つかりましたが、そこの回答は私の問題を解決するのにはあまり役に立ちませんでした。いくつかの関連する提案を持っているように見える他のスレッドは、ここで見つけることができます:ビルドエラーが表示された後
Command failed due to signal: Segmentation fault: 11
不思議なことに、Xcodeでエラーがその色を強調構文は、コードのクラッシュの部分を強調してどこにも登場しましたこの特定の迅速なファイルを編集するたびに60秒ごとに実行されます。これは単なるランダムな出来事かもしれませんが、何らかの形で関連性があるかもしれません(おそらくこのコードのいくつかの部分は、ビルドされないだけでなく、Xcode:Pの部分もクラッシュします)
派生データを削除してみてください。プロジェクトが不思議に構築されないときに役立つことがあります。 XCodeでWindow - > Projectに進み、プロジェクトを見つけて派生データを削除します。また、製品→クリーンを行い、それが機能するかどうかを確認することもできます。 – xlogic
これはうまくいきませんでしたが、チップのおかげで!私は他の不思議なバグのためにそれを念頭に置いておきます。 – lundzern
さて、私はエラーをゼロにしています。私は配列からIDを取得しようとするのではなく、自分のfacebook IDでuserId変数を "ハードコード"するとすべてが機能することがわかりました。 – lundzern