在iOS 开发过程中,虽然使用private framework 的应用会被拒绝审核,但这并不意味着private framework 就不使用,,相反,它很强大,很好用,甚至提供一些匪夷所思的功能.
第一种:导入整个framework
使用private framework 比较简单,只需要分为两步就可以了
首先在xcode 中找到private framework ,目录路径:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/PrivateFrameworks/
将整个framework 拷贝出来
第二步,找到private-framework 头文件
将该framework的所有头文件放在header文件夹中,并把header放在framework文件夹中,这样就能成功调用.
*注:
用第一种方法往往是最麻烦的,要把framework整个添加进去,而因为不同framework之间关联是比较大的,所以往往不是那么顺利的,
第二种,动态加载类
不需要导入framework,只需要知道要使用类的头文件
第一步,导入所需要的头文件
第二步,直接使用,但注意,使用类方法时,因为只引用了头文件,在工程中它并没有被实现,所以会出现类似这种提示:
[CKMadridService initialize];
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_CKMadridService", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture armv7
解决方法:对编译器来说,它只是个class,并且Class是有实现的,所以可以使用这种方法
[NSClassFromString(@"CKMadridService") initialize];
*注:
生成头文件:使用class-dump 工具可以把库文件(.a)中声明的所有类输出出来,但只可输出类的声明,并不能输出c函数的声明
第三种:使用private framework中的C函数
#include <dlfcn.h>
#define PRIVATE_PATH "/System/Library/PrivateFrameworks/CoreTelephony.framework/CoreTelephony"
void *kit = dlopen(PRIVATE_PATH,RTLD_LAZY);
NSString *imsi = nil;
int (*CTSIMSupportCopyMobileSubscriberIdentity)() = dlsym(kit, "CTSIMSupportCopyMobileSubscriberIdentity");
imsi = (NSString*)CTSIMSupportCopyMobileSubscriberIdentity(nil);
dlclose(kit);
private framework使用
原创
©著作权归作者所有:来自51CTO博客作者chenjohney的原创作品,请联系作者获取转载授权,否则将追究法律责任
private framework使用
https://blog.51cto.com/chenjohney/1288551
private framework使用
https://blog.51cto.com/chenjohney/1288551
上一篇:iOS 文字下划线
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【HTTP】使用 RestTemplete 实现 post请求
如上图,要求: 1. post请求; 2. x www form urlencoded 类型; 如下代码没有进行整理,但是测试OK 转换结果的类
http post RestTemplete spring java -
SpringCloud - RestTemplate的三种使用方式
三种方式访问服务URL 写死,用new RestTemplate()访问url来获取消息。(在服务有多个节点,地址
RestTemplate 三种使用方式 SpringCloud 微服务 Feign -
.net框架概述
不同的人对.net框架可能会有不同的认识,而随着.net的不断发展,我们对.
.net 语言 vb.net 框架 web服务 -
Spring之——RedisTemplate 序列化、反序列化扩展支持 FastJson:GenericFastJson2JsonRedisSerializer
请注明出处:://blog..net/l1028386
Spring Redis json redis spring -
Java:SpringBoot实现文件上传
后端上传代码如下package com.mo
spring java 文件上传 -
Django REST framework(官方教程)
教程 2: Requests and Responses从这个角度我们将真正开始覆盖其他框架的核心。让我们介绍几个基本构建块。
Django python 学习笔记 web开发 架构设计 framework 后缀 -
Django REST framework
Django REST framework(翻译的官方工具书)神奇的浏览器APIs.
RESTful web开发 框架 django ide