码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发——错误总结篇&开发中常见错误和警告总结(十八)

时间:2015-08-26 23:55:15      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:

开发中常见错误和警告总结(十八)

 Xib/StoryBoard支持

 

Swift项目在使用Xib/StoryBoard时,会遇到两种不同的问题

  • Xib:不加载视图内容

  • Storyboard:找不到类文件

  Xib不加载视图内容

在创建UIViewController时,默认选中Xib文件,在Xib与类文件名一致时,可通过以下代码实例化:

let controller = ILViewController()

 

运行,界面上空无一物,Xib没有被加载。解决办法,在类的前面加上@objc(类名),例如:  

import UIKit
@objc(ILViewController)
class ILViewController: UIViewController {
}

Tips:

StoryBoard中创建的UIViewController,不需要@objc(类名)也能够保持兼容 

 Storyboard找不到类文件

Swift语言引入了Module概念,在通过关键字@objc(类名)做转换的时候,由于Storboard没有及时更新Module属性,会导致如下两种类型错误:

  用@objc(类名)标记的Swift类或者Objective-c类可能出现错误:

2015-06-02 11:27:42.626 ILSwift[2431:379047] Unknown class _TtC7ILSwift33ILNotFindSwiftTagByObjcController in Interface Builder file.

解决办法,按下图,选中Module中的空白,直接回车

 

技术分享

  无@objc(类名)标记的Swift类

 

 

2015-06-02 11:36:29.788 ILSwift[2719:417490] Unknown class ILNotFindSwiftController in Interface Builder file.

 

 

解决办法,按下图,选择正确的Module

 

技术分享

3.产生上面错误的原因: 在设置好Storyboard后,直接在类文件中,添加或者删除@objc(类名)关键字,导致Storyboard中 Module属性没有自动更新,所以一个更通用的解决办法是,让Storyboard自动更新Module,如下:

技术分享

  错误模拟Demo下载

为了能够让大家更清楚的了解解决流程,将上面的错误进行了模拟,想动手尝试解决以上问题的同学可以直接下载demo

 

iOS开发——错误总结篇&开发中常见错误和警告总结(十八)

标签:

原文地址:http://www.cnblogs.com/iCocos/p/4761819.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!