自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 关于 && 的一点思考

程序中我们经常使用 && 用于逻辑判断,一些用法值得思考:首先我们知道  A && B ,必须二者同时为真,结果才为真。有一个为假,结果就为假。 使用实例:- (BOOL)test1{ NSLog(@"test 1"); return YES;} - (BOOL)test2{ NSLog(@"test 2"); return NO;}第一种调用:

2017-11-29 16:08:33 323

原创 iOS 中关于@synchronized的一点思考

参考 :https://www.cnblogs.com/jukaiit/p/5570056.htmlhttps://www.cnblogs.com/CoderAlex/p/5257339.htmlhttp://www.cocoachina.com/ios/20161205/18279.htmlhttp://www.jianshu.com/p/1e59f0970bf5

2017-11-24 18:34:59 760

原创 SDWebImage源码学习之由浅入深 二

接上篇分析SDWebImage源码学习之由浅入深 一

2017-11-24 15:45:58 277

原创 Android学习 ——SystemUIService之StorageNotification分析

StorageNotification

2017-11-23 17:15:37 1718

原创 SDWebImage源码学习之由浅入深一

SDWebImage

2017-11-22 11:44:51 331

原创 iOS开发中 中NS_ENUM与NS_OPTIONS区别

首先看两个实例typedef NS_OPTIONS(NSUInteger, TestModeType){ TestModeOne = 1 << 0, TestModeTwo = 1 << 1, TestModelThree = 1 << 2};typedef NS_ENUM(NSInteger, MenuType) { MenuTypeOne, M

2017-11-21 17:47:30 557

原创 Android学习 ——SystemUIService之SettingsUI分析

SettingsUI.java 并不是 “设置” 相关 的  而仅仅是 “亮度设置” 。类名夸大了类作用还是先从入口start()public void start() { IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_SHOW_BRIGHTNESS_DIAL

2017-11-21 15:33:58 817 1

原创 Android学习 ——SystemUIService之RingtonePlayer分析

在android API 的media包中有三种方式可供我们选择,它们分别是Ringtone,SoundPool,MediaPlayer。MediaPlayer 适合比较长且对时间要求不高的情况Ringtone 铃声,闹钟,提示音等SoundPool 适合短促且对反应速度比较高的情况(游戏音效或按键声等,音频流组合音)RingtonePlayer.java 分析

2017-11-21 10:40:49 1322

原创 Android学习——systemUIService 之PowerUI分析

首先PowerUI 继承自syetemUI,在类实现开始初始化电量等级,电池状态等一系列信息。略过在powerUI.java 中主要是两个函数start()和onReveice()start() 函数是在systemUIService 中最先触发的方法。在方法内进行了一些赋值操作,及注册对电量变化和屏幕开闭状态的广播监听 public void start() {

2017-11-20 15:45:58 1390

原创 Android学习——systemUIService 类分析

基于Android4.4 systemUIService.java  类分析首先创建了并引用了一个类的数组mServices。数组类的成员均继承systemUI private final Class[] SERVICES = new Class[] { com.android.systemui.recent.Recents.class, // 最近应用

2017-11-20 11:38:49 591

原创 Android学习——SystenUIService启动

参考 http://www.jianshu.com/p/0ab1279465fa首先简单描述一下启动过程:设备上电 ——>引导程序引导计入boot——>加载inittramfs、kernel镜像——>进入用户态程序initinit 的基本功能管理设备,解析并管理Android启动脚本,实时维护init.rc 的服务,加载zygote而zygote 将启动syst

2017-11-20 11:24:46 293

转载 关于const 使用

用const修饰的变量表示变量值只读。static有两个作用:指定变量的作用域和存储的方式。例如在一个文件首部声明static变量,那么这个变量只能在该文件中使用。两者结合可以设置作用域确定并且只读的变量,例如文件中的全局常量。1.用const修饰指针变量(1)const 类型 * 变量名:可以改变指针的指向,不能改变指针指向的内容。int x = 1; int y

2017-11-03 13:55:36 891

原创 关于static 的一点思考

1. 局部变量中的 static static 修饰的变量只被初始化一次。作用域为当前方法,生命周期改变,一致到程序结束才释放2. 全局变量中的 static 默认情况没有被static修饰的情况下 作用域是整个项目,项目中任何地方都能通过extern关键字来引用, 还是只会被初始化一次,内存地址同样只有一份使用static 修饰时,作用域为当前文件。改变了作用域

2017-11-03 11:18:41 210

原创 iOS 中实现绑定变化的 思路

iOS多视图绑定变化

2017-10-30 16:50:56 404

原创 解决iPhone版本升级后,xcode 不能继续调试问题

如果你不想安装使用xcode9 也不想升级Mac OS 版本 ,可以看看下面方法: 找到文件路径xcode-content-Developer-platforms-iPhoneOS.platform-DeviceSupport可以查看到当前xcode 支持的iOS版本,在新版本的xcode 中将新的iOS 版本拷贝到低版本的xcode 中即可。如图我的xcode 是8.2,

2017-09-20 10:26:17 1992

原创 appium 下 python 脚本自动化测试iOS APP 实例

环境:Mac,Xcode, appium python 本文基于appium 环境搭建成功后。如何使用python 编写脚本测试iOS APP1.下载python-client https://github.com/appium/python-client 2.在终端 打开到已经下载的文件目录下执行 python setup.py install 3. 打开apppium 桌面版。点击 st

2017-09-13 15:14:08 5921

原创 关于在APP中边缘滑动返回卡顿问题

iOS 边缘滑动返回 卡顿

2017-09-01 14:26:31 695

原创 项目中使用百度地图记录

现象1:偶先在切换界面之后导致地图只能缩放,但是不能移动解决方案: 在百度地图类中,有部分 delegate 的设置需要在 - (void)viewWillDisappear:(BOOL)animated 时设置nil,在- (void)viewWillAppear:(BOOL)animated 恢复现象2:百度地图的坐标不能直接使用系统提供的 翻遍吗方式解析,不够准确解决方案

2017-06-02 15:20:17 351

原创 Instruments 使用常见问题

本博客只是记录发现及解决的实际问题,仅供自己参考     在研究Instruments 的使用过程中经常会出现调试不显示方法名,基于这种情况,如果是在debug 模式下应该将debug 的DWARF WITH dSYM File 打开,这样在debug下就能有对应的符号集,但是实际调试应该是在release模式下调试在release模式下使用dev 证书,这样就能正常调试

2017-03-13 14:21:22 691

原创 关于多线程之GCD的两点问题思考

1.在多线程中可以通过DISPATCH_QUEUE_SERIAL实现串行队列,那么如何在DISPATCH_QUEUE_CONCURRENT 实现串行效果解决方法:使用信号量 dispatch_semaphore_t 见方法 - (void)runAction22. GCD中经常碰到这样一种情况:在串行队列中可能会堆积很多,后续线程一直等待,这种情况可以通过如下方式给线程计数来完成见方法

2016-07-27 11:13:17 311

原创 static 关键字小解

在变量声明前加上关键字static可以使局部变量保留多次调用一个方法所得的值static int a = 1;声明一个整型静态变量 a 。这里是不需要初始化的,静态变量的初始值就是0;经常我们需要计算执行一个方法的次数,我们会习惯性的使用一个实例变量来计数例如 在interface中声明 index 后初始化为 0然后在方法中index ++ - (void)sho

2016-05-08 15:23:55 258

转载 ios 属性与成员变量的区别

一、类Class中的属性property  在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如:@interface MyViewController :UIViewController{ UIButton *myButton;}@property (nonatomic, retain

2016-03-08 19:22:21 331

原创 Xcode 7 使用CoreData 关于数据库升级问题

coreData 很好用,但是也很坑今天不说coreData 的具体使用,只提在实际运用中很关键的一种情况那就是数据库升级以添加新字段为情形描述先已有旧数据库,只有name age 两个字段当你更新app版本时添加了一个新字段 address 这个时候如果直接将address 字段加入表内,运行就会崩溃正确方法:1.新建一个数据库分支  在Editor ->Add Mo

2016-03-07 21:18:56 463

原创 如何让代码封装性强,耦合度低(持续更新)

1.传值问题,当A跳转到B界面,同时需要将值传给B ,常规的做法是在B头文件中暴露需要传值的变量@interface B : UIViewController@property (strong) NSString* name;@end然而其实这样并不好,任何持有B实例的地方都能修改name 的值优化处理措施:可以将name 变量设置为初始化必须变量// .h

2016-03-06 21:16:05 1749 1

原创 iOS 如何在程序中使用NSCache实现缓存

在iOS开发中经常需要用到NSCache做缓存。比如做一个相册浏览器,如果一直从内存中读取大量数据就会很影响性能,如果在缓存中将已经看的图片存进去,下次需要的时候先去从缓存中获取,如果没有再从内存中读取#define kCacheTotalCostLimit 10*1024*1024   // 设置缓存区域大小为10MNSCache 的实现方式和NSMutabledictionary

2016-02-29 20:36:09 1701

原创 ios Apple Pay 简单使用

配置1.在开发者帐号中先添加一个 Merchant IDs2.如果已经有apple id,编辑apple id 在其中打开apple pay 选项,这时候就可选择 刚才添加的 Merchant IDs3.重新配置provisioning Profiles安装4.在工程文件选择capatilities 大家app pay选项,然后程序就会自动关联之前设置的 Merchant IDs

2016-02-27 15:57:09 924

原创 Touch ID简单使用

实现iOS的指纹识别需要先#import     LAContext *la =[[LAContext alloc] init];        BOOL issupport = [la canEvaluatePolicy:kLAPolicyDeviceOwnerAuthenticationWithBiometrics error:NULL];    la.locali

2016-02-27 11:37:05 557

原创 iOS延时操作

延时执行方法 五秒后执行打印方法一:dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ NSLog(@"333");});方法二:[self performSelector:@selector(afterAction) wit

2016-02-27 10:38:24 300

原创 GCD之dispatch_group_t

不废话,直接上代码,从代码的执行效果看如何使用dispatch_queue_t queue = dispatch_queue_create("com.test.queue", DISPATCH_QUEUE_CONCURRENT);dispatch_group_t group = dispatch_group_create();dispatch_group_async(group, queue, ^

2016-02-27 10:26:47 330

原创 GCD之dispatch_barrier_asyc

dispatch_queue_t  testqueue = dispatch_queue_create("com.test.testqueue", DISPATCH_QUEUE_CONCURRENT);        dispatch_async(testqueue, ^{                            NSLog(@"a=%ld",(long)i);

2016-02-27 10:07:18 298

原创 ios 中如何实现程序内访问其他程序

最近提到这个问题,在网上找了一些资料,但是没发现能完美实现的,就像自己写一下这个详细的操作过程首先写两个程序分别命名:applicationA 和applicationB现在需要在applicationA中点击按钮打开applicationB主要操作在applicaitonB中配置info.plist文件添加字段如图同时在applicationA

2016-02-23 22:43:18 565

原创 iOS 崩溃日志分析(个人总结,最实用)

要分析奔溃日志需要三个文件:crash日志,symbolicatecrash分析工具,.dSYM符号集0. 在桌面创建一个crash文件夹1. 需要Xcode自带的崩溃分析工具symbolicatecrash,命令:find /Applications/Xcode6.1.app -name symbolicatecrash -type f这个文件的位置参考:/Applications...

2016-02-18 15:01:08 14224

转载 iOS tabview 复用机制详解

看到别人的一篇博客,觉得很好创建UITableViewController子类的实例后,IDE生成的代码中有如下段落: [cpp] viewplaincopy- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPat

2016-01-22 20:03:42 2687

原创 ios 处理图片拉伸

1 UIImage* img=[UIImage imageNamed:@"2.png"];//原图2 UIEdgeInsets edge=UIEdgeInsetsMake(0, 10, 0,10); // 上左下右3 //UIImageResizingModeStretch:拉伸模式,通过拉伸UIEdgeInsets指定的矩形区域来填充图片4 //UIImag

2016-01-20 11:33:08 321

原创 ios 中如何处理于Webview 的交互

首先要知道几个字符串,这几个字符串就类型命令行作用:根据需要使用@"document.URL"@"document.location.href"@"self.location.href"@"document.location"@"top.location.href"@"parent.document.location"@"top.location.hostnam

2016-01-18 19:55:13 441

原创 关于在ios 中断言的使用

好久没有写博客了,这段时间一直在忙公司的项目 简单说一下iOS中断言的使用 断言 在开发中经常在使用到,先看iOS中断言的使用实例 (NSAssert)    NSString *str =@"abcd";    NSAssert([strisEqualToString:@"abcde"],@"str != abcde");在断言中前面那部分输入断言

2016-01-14 21:54:30 606

转载 关于GCD 的全解(转载自http://blog.csdn.net/wangqiuyun/article/details/19198467)

从 别人哪里转载的,写的很好一、相关概念    GCD全称Grand Central Dispatch,是Apple提供的一套低层API,提供了一种新的方法来进行并发程序编写。GCD有点像NSOperationQueue,但它比NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。GCD的API很大程度上基于block,当然,GCD也可以脱离

2015-12-11 23:14:26 782

原创 ios多线程学习之GCD线程锁

因为在以前的开发中实在是很少会用到多线程的知识,但是现在手中的项目是做视频开发。而在视频开发类项目中,最困难的就是逻辑和多线程处理,这几天没事研究了一下线程锁,我觉的一个简答的代码实例,就能体现出GCD 线程锁的特征还是先了解一点,在GCD 中实现锁的操作是通过线程队列来实现的首先是一段没有锁操作的简单线程处理       dispatch_async(

2015-11-30 00:03:58 1707

原创 数组中不常用却又好用的方法探索

博客事由:在开发静态库时,希望能够让自己的接口更加人性化以及实用价值更高,我需要用到一个数组,以及对数组元素是否存在的判断。以往总是遍历所有元素,于是就想有没有一个方法能够直接判断某个元素是否存在于数组中,于是尝试之下果然发现还是有的。进而想更深层次的挖掘一下数组的一些实用的方法。  (1)这个方法能够直接判断数组是否包含该元素  NSArray *arr =@

2015-11-25 00:45:08 424

原创 iOS如何让程序能够支持文件共享

由于iOS的沙盒机制,苹果用户就不能像安卓用户那样能够直接往手机里拷自己喜欢的音视频文件,如果你的程序支持拷贝文件进去,并且能够显示在程序中。那么就需要以下配置了:在应用程序的Info.plist文件中添加UIFileSharingEnabled(Application supports iTunes file sharing )键,并将键值设置为YES。这时你再连接手机运行程序,

2015-11-09 20:51:51 6244

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除