在解包可选值时意外地在设备中运行时发现nil

时间:2014-11-18 22:11:04

标签: uitableview swift uitabbarcontroller

好吧,在模拟器应用程序中进行调试工作正常,但在使用设备(iPhone)运行时显示错误,如

  

在解包可选值时意外发现nil

 case 8:
    var myview = UIView()
    myview.backgroundColor = UIColor.whiteColor()
    myview.layer.shadowOffset = CGSizeMake(1, 0);






    if indexPath.row == 0
    {
        myview.frame = (frame: CGRectMake(10, 0, 300, 30))

        let  titlelable:UILabel = UILabel(frame: CGRectMake(70, 5, 200, 20))
        //        let titlelable = self.mylable("Past Employers", sizeoflable: CGRectMake(100, 10, 150, 25), labelcolor: UIColor.blackColor(), labelfont: UIFont.systemFontOfSize(10), labeltextalinment: NSTextAlignment.Left)
        titlelable.text="  News & Press"
        titlelable.textColor = UIColor.blackColor()
        titlelable.font = UIFont.systemFontOfSize(20)
    //    titlelable.font = UIFont(name:"Source Sans Pro",size:20)
        titlelable.textAlignment = NSTextAlignment.Left
        myview .addSubview(titlelable)
        cell .addSubview(myview)

    }

    else if indexPath.row == 4
    {

        var imageVEml = UIImageView(frame:CGRectMake(120, 30, 24, 15 ))
        var imageEml : UIImage = UIImage(named:"view-all-icon2x")!
        imageVEml.image = imageEml
        myview .addSubview(imageVEml)


        let  TimeLabel:UILabel = UILabel(frame: CGRectMake(155, 13, 200, 50))
        //        let titlelable = self.mylable("Past Employers", sizeoflable: CGRectMake(100, 10, 150, 25), labelcolor: UIColor.blackColor(), labelfont: UIFont.systemFontOfSize(10), labeltextalinment: NSTextAlignment.Left)
        TimeLabel.text = "View all"
        TimeLabel.textColor = UIColor(red: 21.0/255,  green: 181.0/255, blue: 226.0/255, alpha: 1)
       TimeLabel.font = UIFont.systemFontOfSize(15)
     //    TimeLabel.font = UIFont(name:"Source Sans Pro",size:15)
        TimeLabel.textAlignment = NSTextAlignment.Left
        myview .addSubview(TimeLabel)


        cell.addSubview(myview)

    }
    else if indexPath.row == 1 || indexPath.row == 2 || indexPath.row == 3
    {
        println("indexpath#\(indexPath.row) ")
        //            cell.textLabel.text = NameArray[indexPath.row]as NSString
        //            cell.detailTextLabel?.text = DescArray [indexPath.row]as NSString
        myview.frame = (frame: CGRectMake(10, 0, 300, 100))
        let  titlelable:UILabel = UILabel(frame: CGRectMake(10, 3, 300, 80))
        //        let titlelable = self.mylable("Past Employers", sizeoflable: CGRectMake(100, 10, 150, 25), labelcolor: UIColor.blackColor(), labelfont: UIFont.systemFontOfSize(10), labeltextalinment: NSTextAlignment.Left)



        titlelable.text  = newsTitlearray[indexPath.row] as NSString
        titlelable.textColor = UIColor.blackColor()
        titlelable.numberOfLines = 0
        titlelable.font = UIFont.systemFontOfSize(18)
   //      titlelable.font = UIFont(name:"Source Sans Pro",size:18)
        titlelable.textAlignment = NSTextAlignment.Left
        myview .addSubview(titlelable )

        let  TimeLabel:UILabel = UILabel(frame: CGRectMake(130, titlelable.frame.size.height, 200, 25))
        //        let titlelable = self.mylable("Past Employers", sizeoflable: CGRectMake(100, 10, 150, 25), labelcolor: UIColor.blackColor(), labelfont: UIFont.systemFontOfSize(10), labeltextalinment: NSTextAlignment.Left)


        TimeLabel.text = newsTimearray[indexPath.row] as NSString
        TimeLabel.textColor = UIColor.grayColor()
        TimeLabel.font = UIFont.systemFontOfSize(15)
     //    TimeLabel.font = UIFont(name:"Source Sans Pro",size:15)
        TimeLabel.textAlignment = NSTextAlignment.Left
        myview .addSubview(TimeLabel)

        var imageVEml2 = UIImageView(frame:CGRectMake(115, titlelable.frame.size.height+7, 10, 10 ))
        var imageEml2 : UIImage = UIImage(named:"Dot2")!
        imageVEml2.image = imageEml2
        myview .addSubview(imageVEml2)


        let  Desclable:UILabel = UILabel(frame: CGRectMake(30, titlelable.frame.size.height, 100, 25))

        Desclable.text = (newslogolbl[indexPath.row] as NSString)
        Desclable.textColor = UIColor.grayColor()
        Desclable.numberOfLines = 0
        Desclable.font = UIFont.systemFontOfSize(15)
   //      Desclable.font = UIFont(name:"Source Sans Pro",size:15)
        Desclable.textAlignment = NSTextAlignment.Left
        myview .addSubview(Desclable)

        var imageVEml = UIImageView(frame:CGRectMake(10, titlelable.frame.size.height+5, 15, 15 ))
        var imageEml : UIImage = UIImage(named:companyLogo [indexPath.row] as NSString)!
        imageVEml.image = imageEml
        myview .addSubview(imageVEml)



        cell.addSubview(myview)


              }


    break

同样的问题 - “fatal error: unexpectedly found nil while unwrapping an Optional value when navigating” 日志:

  

indexpath#2   indexpath#3   indexpath#1

致命错误:在解包可选值时意外发现nil

1 个答案:

答案 0 :(得分:0)

许多事情在打开时都会导致无效,如果您不了解选项,我强烈建议您在文档中阅读它们。

据我所知,你使用了至少3个你隐式解开的选项(这可以通过!在某些变量之后看到)并且它们都遵循" UIImage"

我假设这个错误可能是由于UIImage" Dot2" (或其他图像之一)在项目中不存在,或者名称不正确。

如果不是这样的情况,那么你真的需要添加一些断点并尝试隔离这个错误发生的代码行,因为很多事情会导致一个可选的查找nil。

编辑:

当你尝试访问" indexPath"时,newsloglbl找到nil,看起来你的indexPath可能比newsloglbl的大小要大,所以在尝试访问该路径上的对象时它什么也找不到并失败。如果您需要更详细的帮助,请提供newloglbl的一些代码