如何解决命令因信号失败:分段故障:11

时间:2016-06-16 15:13:42

标签: ios swift

我在这里搜索这个问题,发现这个问题不常见。

每个人都有不同的方法来解决它。我使用的是Firebase和Gifu框架。实际上对于最后一个 - 我将所有文件复制到我的项目中,但这也没有帮助。

这是我的源代码:

import FirebaseDatabase
import FirebaseAuth
import Firebase
import UIKit
import Gifu

class ViewController: UIViewController {

@IBOutlet weak var userImage: AnimatableImageView!

var displayedUserId = ""
var AcceptedOrRejected = ""


override func viewDidLoad() {
    super.viewDidLoad()

    let urlArray = ["http://i.imgur.com/VAWlQ0S.gif", "http://i.imgur.com/JDzGqvE.gif", "http://67.media.tumblr.com/4cd2a04b60bb867bb4746d682aa60020/tumblr_mjs2dvWX6x1rvn6njo1_400.gif", "https://media.giphy.com/media/TlK63ELk5OPDzpb6Tao/giphy.gif", "http://i3.photobucket.com/albums/y90/spicestas/GeriHalliwell-Calling-new1.gif", "http://media.tumblr.com/tumblr_lnb9aozmM71qbxrlp.gif"]

    var counter = 1

    for url in urlArray {

        let nsUrl = NSURL(string: url)

        let girls = ProfileClass()

        girls.profilePhotoUrl = url
        girls.profileGender = "female"
        girls.profileName = "girlsname\(counter)"
        girls.profileSurname = "girlsurname\(counter)"
        girls.interest = "men"
        girls.uid = "\(randomStringWithLength(45))"

        counter++
        girls.SaveUser()


    }

    //----setting variables


    let label = UILabel(frame: CGRectMake(self.view.bounds.width / 2 - 100, self.view.bounds.height / 2 - 50, 300, 100))
    //label.text = "Drag me!"
    //label.textAlignment = NSTextAlignment.Center
    self.view.addSubview(label)

    let gesture = UIPanGestureRecognizer(target: self, action: Selector("wasDragged:"))
    userImage.addGestureRecognizer(gesture)
    userImage.userInteractionEnabled = true



    //----getting access to database

    let thisUserRef = URL_BASE.childByAppendingPath("profile")


    thisUserRef.queryOrderedByChild("Interest").queryEqualToValue("men").observeEventType(.Value, withBlock: {
        snapshot in

        for child in snapshot.children{

            self.displayedUserId = (child.value["uid"] as? String)!

            let imageURL = child.value["photo"] as? String

            let imURL = NSURL(string: imageURL!)

            //print(imageURL)



            if self.AcceptedOrRejected != "" {

                let AcceptedArray = child.value[AcceptedOrRejected] as? Array

                AcceptedArray.append(displayedUserId)

            }







            if let picData = NSData(contentsOfURL: imURL!) {

                self.userImage.animateWithImageData(picData)
                //self.userImage.image = UIImage(data: picData)
            }


        }


    })






}

//-----Dragging function-----------

func wasDragged(gesture: UIPanGestureRecognizer) {

    //set traslations
    let translation = gesture.translationInView(self.view)
    let label = gesture.view



    //set center position
    label!.center = CGPoint(x: self.view.bounds.width / 2 + translation.x, y: self.view.bounds.height / 2 - translation.y )

    let xfromCenter = (label?.center.x)! - self.view.bounds.width / 2

    let scale = min(100 / abs(xfromCenter),1)

    var rotation = CGAffineTransformMakeRotation(xfromCenter / 200)

    var strech = CGAffineTransformScale(rotation, scale, scale)

    label?.transform = strech



    if gesture.state == UIGestureRecognizerState.Ended {

        if label?.center.x < 100 {

            self.AcceptedOrRejected = "Accepted"


        } else if label?.center.x > self.view.bounds.width / 100 {

            self.AcceptedOrRejected = "Rejected"

        }

        rotation = CGAffineTransformMakeRotation(0)
        strech = CGAffineTransformScale(rotation, 1, 1)

        label?.transform = strech

        label?.center = CGPoint(x: self.view.bounds.width / 2 , y: self.view.bounds.height / 2 )
    }

}


//---Function for generating randomn userid


func randomStringWithLength (len : Int) -> NSString {

    let letters : NSString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

    let randomString : NSMutableString = NSMutableString(capacity: len)

    for (var i=0; i < len; i += 1){
        let length = UInt32 (letters.length)
        let rand = arc4random_uniform(length)
        randomString.appendFormat("%C", letters.characterAtIndex(Int(rand)))
    }

    return randomString
}



override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()


}


override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if segue.identifier == "LogOutSegue" {
        try! FIRAuth.auth()!.signOut()
    }


}

}

我收到此错误

1.  While emitting SIL for 'viewDidLoad' at /Users/zkid18/Desktop/wrk/Bloom/Bloom/ViewController.swift:23:14
2.  While silgen closureexpr SIL function @_TFFC5Bloom14ViewController11viewDidLoadFT_T_U_FCSo15FIRDataSnapshotT_ for expression at [/Users/zkid18/Desktop/wrk/Bloom/Bloom/ViewController.swift:68:114 - line:107:9] RangeText="{
            snapshot in

            for child in snapshot.children{

                self.displayedUserId = (child.value["uid"] as? String)!

                let imageURL = child.value["photo"] as? String

                let imURL = NSURL(string: imageURL!)

                //print(imageURL)



                if self.AcceptedOrRejected != "" {

                    let AcceptedArray = child.value[AcceptedOrRejected] as? Array

                    AcceptedArray.append(displayedUserId)

                }







                if let picData = NSData(contentsOfURL: imURL!) {

                    self.userImage.animateWithImageData(picData)
                    //self.userImage.image = UIImage(data: picData)
                }


            }


        }"

我真的不知道如何处理

1 个答案:

答案 0 :(得分:0)

我刚尝试转换到Swift 3,以便在我的代码中修复问题。我有类似的错误,但我只是将Firebase集成到我的所有项目中。我发现通过从应用程序中删除pod和框架并注释掉所有firebase代码修复了这个编译问题。