2015-09-07 40 views
0

IM试图改变这种状况产生的FUNC viewDidLoad中,当我点击屏幕的imageview的形象,但点击屏幕后,我在该行SIGABRT挖掘后的ImageView

class AppDelegate: UIResponder, UIApplicationDelegate { 

在这里得到一个SIGABRT是代码

AppDelegate.swift

import UIKit 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     /*application.registerUserNotificationSettings(
     UIUserNotificationSettings(
       forTypes: [.Alert, .Badge, .Sound], categories: nil))*/ 

     return true 
    } 

    func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) { 
    application.applicationIconBadgeNumber = 0 
     let alert = UIAlertView() 
     alert.title = "Alert" 
     alert.message = notification.alertBody 
     alert.addButtonWithTitle("Dismiss") 

     alert.show() 
    } 

} 

ViewController.swift

class ViewController: UIViewController { 

    @IBOutlet var imageview: UIImageView! 


    @IBAction func localNotification(sender: UIButton) { 
     let localNotification = UILocalNotification() 
     localNotification.fireDate = NSDate(timeIntervalSinceNow: 5) 
     localNotification.alertBody = "Esta es una notificacion" 
     localNotification.timeZone = NSTimeZone.defaultTimeZone() 
     localNotification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1 
     UIApplication.sharedApplication().scheduleLocalNotification(localNotification) 
    } 


    override func viewDidLoad() { 
     super.viewDidLoad() 

     let imageUrlString = "http://www.personal.psu.edu/cmr5496/sky_main.jpg"; 
     let url = NSURL(string:imageUrlString); 
     let data = NSData(contentsOfURL: url!) 
     imageview.image = UIImage(data: data!); 


     let singleTap = UITapGestureRecognizer(target:self, action:Selector("imageTapped:")) 
     singleTap.numberOfTapsRequired = 1; 
     singleTap.numberOfTouchesRequired = 1; 
     imageview.addGestureRecognizer(singleTap); 
     imageview.userInteractionEnabled = true; 
      } 

    func transformar(str: String) -> UIImage { 

     let url = NSURL(string:str); 
     let data = NSData(contentsOfURL: url!) 
     let image = UIImage (data:data!); 
     return image!; 
    } 

    func imageTaped(gestureRecognizers: UIGestureRecognizer) { 

     UIView.animateWithDuration(0.5, animations: { 


    self.imageview.image = self.transformar("http://www.brandontreb.com/wp-content/uploads/2009/06/screenshot_021.png"); 
    //imageview.alpha = 0.0f; 
    //imageview.contentMode = UIViewContentModeTop; 

    }) 

} 
} 
+2

你有什么可以做,什么是你所得到的错误] – Lamar

+1

使用断点导航设置异常断点。这应该在遇到错误的地方停止你的程序。如果您仍然需要帮助,请发布堆栈跟踪。 –

+0

即时通讯设法改变图像后,点击屏幕,即时通讯SIGABRT,但我没有得到更多的东西在这里发布 –

回答

1

我跑项目。

错字:“imageTapped”和“imageTaped”不是一回事。关键的线索是在控制台中的错误信息:- [TestBeaconsSwift.ViewController imageTapped:]:无法识别的选择发送到实例0x7b76bc30

+0

这是问题,你怎么能够看到控制台/错误消息?当应用程序崩溃时,我唯一能注意到的是来自我的appdelegate.swift文件的整个代码的红色指示符。我是IOS开发新手,使用xcode 7 beta直接部署到手机。感谢您的帮助 –

+0

没关系,我找到了控制台。再次感谢。 –

2

我会假设,因为你还没有打开数据,因为数据可能是零。

let url = NSURL(string:str) 
let data = NSData(contentsOfURL: url!) 
imageview.image = UIImage(data: data!) 

替换

if let url = NSURL(string:str) { 
    if let data = NSData(contentsOfURL: url) { 
     return UIImage (data:data) 
    }else{ 
     print("image data invalid") 
    } 
}else{ 
    print("URL invalid") 
} 
return UIImage() 
+0

我做到了,但nothings更改 –

+0

所以数据和网址是有效的,它仍然崩溃? –

+0

是的,那不是错误,我认为 –