iOS开发 .framework的Optional(弱引用)和Required(强引用)区别, 有错误 Library not found………………

http://www.cnblogs.com/wanyakun/p/3494323.html

强引用(Required)的framework是一定会被加载到内存的,但是弱引用(Optional)的framework只在需要时才会被载入内存,这对于比较大的framework来说,在最初加载的时候会省很多时间。

简单解释一下,有一些库如Social.framework 和 AdSupport.framework,是在iOS6之后才被引入的,还有一些更新了新特性的只能在iOS6+上可用。当你添加一个framework到你的工程里,他们被默认强引用(Required),然而,当你最终把程序配置在运行5.0的设备上时,你会发现它通不过最户的加载,原因就在于这些库是不被iOS5.0支持的,就需要我们把这些库的引用改为Optional.

其次,如果你遇见了这个错误:duld:Library not found………………说明你有不应该强引用的可存在,这个错误报告里都会指明有哪些库需要弱引用。

/////   分隔线  //////

CoreAudioKit is not compatible with the iOS Simulator. Run it on a device, and it should build just fine

前几天在处理芒果的广告库时, 有个 CoreAudioKit.framework .这个是iOS8新增加的, 所以也要设置成optional, 不然, 在7上会崩溃

时间: 2024-08-25 05:46:55

iOS开发 .framework的Optional(弱引用)和Required(强引用)区别, 有错误 Library not found………………的相关文章

iOS 开发 Framework

制作Framework 的好处和缺点 好处:       1.如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性:       2.物理上的模块化便于开发过程的管理与测试,尤其是在程序规模相对大.       3.如果可以使用胶水语言作为粘合剂,程序可以用很少的代价适应未来的变化.       4.可以在物理上实现 iOS 程序的模块化. 不足:       1.由于是静态库,应该不会有什么运行时的损失,但是没试验过,不确定.       2.资源的加载这部分,不知道会不会占用

iOS开发中的零碎知识点笔记 韩俊强的博客

每日更新关注:http://weibo.com/hanjunqiang  新浪微博 1.关联 objc_setAssociatedObject关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分. 2.tableView的beginUpdates 和 endUpdates 3.关于代码与storyBoard的自动布局 4.国际化与本地化,为了实现全球化 5.技巧 可以通过设置Scheme来设置app所运行的语言,你想要什么语言就是什么语言,而不用重新设置系统的语言. 6.i

ios开发中类方法与self的注意点 与实例方法区别

Objective-C里面既有实例方法也类方法.类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method).工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法. 注意点一:类方法 1,类方法可以调用类方法. 2,类方法不可以调用实例方法,但是类方法可以通过创建对象来访问实例方法. 3,类方法不可以使用实例变量.类方法可以使用self

iOS开发遇到的坑之六--使用cocopods管理第三方库时,编译出现Library not found for -lPods问题的解决办法

在项目中有时候会遇到Library not found for -lPods(这里的IPods指的是你具体的第三方库)的问题 出现这个错误的原因是:xcode在编译的时候找不到这个库,从而导致项目无法编译! 这里给出几种解决办法: 第一种: Search from 'Library' from the Target Settings view and double-click to inspect the value of Library Search Paths There are two v

iOS开发--libxml/HTMLparser.h file not found 解决方法 (libxml.dylib错误处理)

点击左边项目的根目录,再点击右边的Build Settings,手工输入文字:“Header search paths”,然后单击(或双击,点击弹出面板下面的“+”号进行添加)“ Header search paths ”右边的空白处,输入:${SDK_DIR}/usr/include/libxml2

iOS开发——语法OC篇&BOOL / bool / Boolean / NSCFBoolean四者区别

Name Typedef Header True Value False Value BOOL signed char objc.h YES NO bool _Bool (int) stdbool.h true false Boolean unsigned char MacTypes.h TRUE FALSE NSNumber __NSCFBoolean Foundation.h @(YES) @(NO) CFBooleanRef struct CoreFoundation.h kCFBoole

IOS开发语言Swift入门连载---自动引用计数

IOS开发语言Swift入门连载-自动引用计数 Swift使用自动引用计数(ARC)这一机制来跟踪和管理你的应用程序的内存.通常情况下,Swift 的内存管理机制会一直起着作用,你无须自己来考虑内存的管理.ARC 会在类的实例不再被使用时,自动释放其占用的内存. 然而,在少数情况下,ARC 为了能帮助你管理内存,需要更多的关于你的代码之间关系的信息.本章描述了这些情况,并且为你示范怎样启用 ARC 来管理你的应用程序的内存. 注意 引用计数仅仅应用于类的实例.结构体和枚举类型是值类型,不是引用类

IOS学习—强引用(__strong)和 弱引用(__weak)

在Objective-C的ARC模式中, id obj1 = [[NSObject alloc] init]; 这里虽然没有显示的声明为__strong,但是Objective-C默认声明的一个对象就为__strong,即: id obj1 = [[NSObject alloc] init]; 和 id __strong obj1 = [[NSObject alloc] init]; 是等价的. 在强引用中,有时会出现循环引用的情况,这时就需要弱引用来帮忙(__weak). 强引用持有对象,弱引

QF——关于iOS的强引用,弱引用及strong,retain,copy,weak,assignd的关系

强引用和弱引用: 我们已经知道OC中的内存管理是通过“引用计数器”来实现的.一个对象的生命周期取决于它是否还被其他对象引用(是否retainCount=0).但在有些情况下,我们并不希望对象的销毁时间由是否被其他对象引用来决定,而是这个对象本该是什么时候销毁就什么时候被销毁.这时,我们得引入“强引用”和“弱引用”的概念. 强引用:当前对象被其他对象引用时,会执行retain操作,引用计数器+1.当retainCount=0时,该对象才会被销毁.因为我们要进行对象的内存管理,所以这是默认的引用方式