iOS 在不添加库的情况下 通过抽象类来获取自己想要的方法

#define SYSTEM_VERSION_MORE_THAN_BFDATA(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)

+ (NSString *)advertisingID {

    NSString *returnValue = nil;
    if (SYSTEM_VERSION_MORE_THAN_BFDATA(@"5.9")) {
//通过抽象类来获取 ASIdentifier 这里面的方法。得到idfa
        Class MyManager = NSClassFromString(@"ASIdentifierManager");
        if (MyManager) {
            id manager = [MyManager performSelector:@selector(sharedManager)];
            if ([manager performSelector:@selector(isAdvertisingTrackingEnabled)]) {
                returnValue = [[manager performSelector:@selector(advertisingIdentifier)]
                               performSelector:@selector(UUIDString)];
            }
        }
    }

    return returnValue;
}
时间: 2024-10-18 18:44:53

iOS 在不添加库的情况下 通过抽象类来获取自己想要的方法的相关文章

iOS 手机没有安装支付宝的情况下,不调支付宝网页的解决的方法

NSArray *array = [[UIApplication sharedApplication] windows]; UIWindow* win=[array objectAtIndex:0]; [win setHidden:NO]; 在调用支付宝payOrder 之前,写上上面三行代码就可以,可是写这又一个坏处.就是会把viewcontroller的全部逻辑都走一遍的,另一个方法.就是找到info.plistMain storyboard file base name删除就能够了.

Oracle主库归档丢失,备库日志有gap,在不重建备库的情况下,恢复备库

本文主要描述Oracle备库日志与主库日志之间有gap,切主库这部分gap的归档日志已经删除或丢失,如何在不重建备库的情况下,恢复备库. 欢迎转载,请注明作者.出处. 作者:张正 blog:http://space.itpub.net/26355921 QQ:176036317 如有疑问,欢迎联系. 在dataguard环境中,由于主库archivelog丢失,且尚未同步到standby,问如何在避免 重建standby的情况下来将standby恢复成功的. 下面是我的测试过程,供参考! —-主

VC 各种情况下的窗口句柄的获取

动窗口的句柄.否则,返回值为NULL. GetSafeHwnd 函数功能:获取某个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数. 通过下面的例子来看其理由: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器 HWND hwnd = pwnd->m_hwnd; //得到它的HWND 这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection

iOS开发——在不支持横屏情况下,实现播放器全屏播放

在使用MPMoviePlayerController实现播放器播放时,发现不能全屏播放,原来是因为项目不支持横屏,把支持横屏的选项勾住就OK啦,但是其他页面不支持横屏,这个方法就行不通了. 在网上找了很多的资料,很多都是在iOS 6之后就舍弃的,都没用,下面我就来介绍下,在不支持横屏的情况下,实现视频播放器的全屏播放. 1. 首先在AppDelegate.h 定义@property (nonatomic, assign) BOOL allowRotation; // 标记是否可以旋转 2. 同时

【python】不删库的情况下,更新复杂冲突的数据库

1:使用Navicat的数据传输导出sql数据库结构 2:使用Navicat的结构同步进行对比(如果是服务器数据库,使用命令把数据库sql文件down下来[mysqldump -uroot -p密码 -B 数据库名> 文件名.sql]),使用FileZilla Client传输到本地桌面 3:Navicats上对比A,B数据库.观察数据库差距命令,先在本地部署  查看是否部署修改的命令后是否报错 4:没有报错,数据库更新(mysql -uroot -p密码 -D 数据库名< 文件名.sql)

在UITableViewStylePlain情况下sectionHeader可以与tableview一起滑动的解决方法

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat sectionHeaderHeight = 20; if (scrollView.contentOffset.y <= sectionHeaderHeight&&scrollView.contentOffset.y > 0) { scrollView.contentInset = UIEdgeInsetsMake(-scrollView.content

在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?

在高并发.高负载的情况下,如何给表添加字段并设置DEFAULT值? 在Oracle 12c之前,当Oracle表数据量上亿时,对表执行“ALTER TABLE XXX ADD COLUMN_XX VARCHAR2(2) DEFAULT 'XXX';”操作时,效率及安全性是必须要考虑的因素.若直接执行,则会在该过程中给表加上6级表锁,也就是连查询都需要等待,这在生产库上是相当危险的操作.因为Oracle在执行上述操作过程中,不仅要更新数据字典,还会刷新全部的记录,并且会使得Undo表空间暴涨,所以

windows7下python3.4.3 添加库路径(转)

1, 动态的添加库路径.在程序运行过程中修改sys.path的值,添加自己的库路径import syssys.path.append(r'your_path') 2, 在Python安装目录下的\Lib\site-packages文件夹中建立一个.pth文件,内容为自己写的库路径.示例如下C:\Users\zqiguo\Desktop

尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

从10G开始,Oracle提供了一个较为轻量级的客户包,叫做Instant Client. 将它安装好后,就不用再安装庞大的Oracle Client了. 这样一来,只要客户端下载Instant Client,直接解压,设置Path就ok了.具体设置如下:1.下载32位Oracle InstantClient 2.将Oracle InstantClient解压到某目录 3.打开PL/SQL,在perference里面设置OCI Library和Oracle_home,例子如下: