当前位置:  编程技术>移动开发
本页文章导读:
    ▪关于编译异常:"OBJC_CLASS_$_XXXXXX" referenced from        关于编译错误:"_OBJC_CLASS_$_XXXXXX", referenced from: 在xcode 开发过程中,经常遇到如下错误:  "_OBJC_CLASS_$_ClassName", referenced from: 我总结了两种错误情况: 1.一个类所在的库(框架)没有被引.........
    ▪ 网络操作不加超时挑动的无限悲剧        网络操作不加超时引发的无限悲剧可以说我是一个网络方面的菜鸟! 现在做的项目网络部分是别个写的(已经离职) 今天突然发现个问题,我在他代码的catch里面加入了一些提示信息(android 平.........
    ▪ xcode 静态库资源文件及xib打包       xcode 静态库资源文件及xib封装目前有个需求,需要把.xib封装到静态库中,试了很多种方法都不行,最后看到这篇文章 ,它是从 iOS Library With Resources 翻译过来的,图片没有显示(原文有).........

[1]关于编译异常:"OBJC_CLASS_$_XXXXXX" referenced from
    来源: 互联网  发布时间: 2014-02-18
关于编译错误:"_OBJC_CLASS_$_XXXXXX", referenced from:

在xcode 开发过程中,经常遇到如下错误:

 "_OBJC_CLASS_$_ClassName", referenced from:


我总结了两种错误情况:

1.一个类所在的库(框架)没有被引入,常见为framework添加。

解决方法:添加该类所在的库(框架)


2.一个类没有被正确的添加到工程中,这种情况在工程中的确存在这个类,可是程序就是不能识别。

解决方法:选中该类,只删除它在该工程中的引用,然后,再添加引用,如下图


添加:





选择





    
[2] 网络操作不加超时挑动的无限悲剧
    来源: 互联网  发布时间: 2014-02-18
网络操作不加超时引发的无限悲剧

可以说我是一个网络方面的菜鸟!

现在做的项目网络部分是别个写的(已经离职)

今天突然发现个问题,我在他代码的catch里面加入了一些提示信息(android 平台,弹个toast之类的)

发现肯定会走到异常的代码死都走不到异常里面去。

我就郁闷了,在代码里面打印了各种log    11111111       2222222222          333333333 苦逼懒得写那么清楚了。

HttpURLConnection conn;
						conn = (HttpURLConnection)url.openConnection();
						conn.setConnectTimeout(3*1000);//注意之前没有这个
						System.out.println("555555");
						MyAuthenticator authenticator =  new MyAuthenticator(TcpProcessAcceptedData.name, TcpProcessAcceptedData.password);
		    	        Authenticator.setDefault(authenticator);
		    	        System.out.println("6666666");
						InputStream fis=conn.getInputStream();
						System.out.println("77777777");

尼玛怎么都走不到777777777  也走不到catch (这段代码全部在try的范围内,而且catch用的是所有异常的父类Exception)

没办法 苦逼啊,问题总得解决,加了 finally  ,但是尼玛依然走不到finally  。

各位说郁闷不郁闷 


后来我一行一行的看,我看标准文档,发现

conn.getInputStream()//这货很可能返回不了,因为默认这个java类里面默认的超时是infinite ,各位知道这个单词是什么意思吗?竟然是他妈的无限,如果你传入的是一个永远都不可能连上的ip地址,它就返回不了了  啊啊啊啊 !!!

    
[3] xcode 静态库资源文件及xib打包
    来源: 互联网  发布时间: 2014-02-18
xcode 静态库资源文件及xib封装
目前有个需求,需要把.xib封装到静态库中,试了很多种方法都不行,最后看到这篇文章 ,它是从 iOS Library With Resources 翻译过来的,图片没有显示(原文有)。

这里主要是把静态库种的.xib封装到bundle中,然后把静态库内链到工程中。
以下是这篇文章主要流程:

1 添加资源Bundle Target

资源必须是单独编译成Bundle才能使用,所以需要为MyLibrary(静态库target)项目生成另一个Bundle Target

选择MyLibrary(静态库target)项目,在右边面板中点Add Target->MAC OS X->FRAMEWORK &LIBRARY->Bundle



需要说明,bundle项目只有MAC OS X里才有,但实际上也是可以用于IOS的,只是需要做些改动,即下面的第2步.


2 修改资源bundle target

把bundle target修改成ios能用的,看图

Build Settings设置

1)Architectures为Standard (armv7)

2)Build Active Architecture Only 为指定的IOS版本



3 添加 XIB的输出

设置XIB为输出到BUNDLE,这一步相当于VS c#开发里把某个图片设置编译动作为嵌入资源.

选择Mylibrary(静态库target)项目,targets选择MyLibraryResources(静态库资源target),Build Phases面板

Copy Bundle Resources点+选择xib文件



4 关联静态库引用

把主程序和静态库做关联,这样省得每次要手动添加静态库的.a文件

要说明下:我原本以为编译主程序会自动编译静态库,实际上做的并没有那么好,我改动了静态库的XIB内容,但编译主程序后发现内容还是上次的,所以我每次都是clean build.

编辑Scheme(菜单Product->Edit Scheme)

选择Build

点+,选择MyLibrary(静态库target)和MylibraryResources(静态库资源target)项目

这样的话,每次build都可以编译多个target和scheme。

 



5 最后设置主程序项目

选择MyLibraryResource(静态库资源target)项目在Build Settings面板里

设置User Header Search Paths为$(BUILT_PRODUCTS_DIR),注意建议把Recursive勾上(递归搜索)



6 使用 
 选择要使用静态库的工程,target->build phases->copy bundle resources,点击"+",add other 添加MylibraryResources.bundle,一般在build->release-iphoneos目录。

重写controller的init

ResourcesBundle=资源文件bundle

- (id)init

{

    NSBundle *bundle = [NSBundle bundleWithURL:[[NSBundlemainBundle] URLForResource:ResourcesBundlewithExtension:@"bundle"]];

    if ((self = [super initWithNibName:[NSStringstringWithUTF8String:object_getClassName(self)] bundle:bundle]))

    {

        //code

    }

    return self;

}


 

关于xib中的图片

如果xib中有图片,可能会报以下的警告,然后图片显示不成功。
Could not load the image 'xxx.png' referenced from a nib in the bundle with identifier "com.xxx.xxx"

解决方法:
手动指定xib中的图片


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现Back功能代码片段总结 iis7站长之家
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3