- 博客(38)
- 资源 (2)
- 收藏
- 关注
原创 ios排序算法
1.冒泡排序 O(n2)相邻的两个元素比较,如果第一个比第二个大,就交换,从第一个元素到倒数第二个- (void)BubbleSort:(NSMutableArray *)array{ for (int i = 0; i<array.count; i++) { for (int j = 0; j<array.count-1-...
2019-07-19 16:29:39
692
原创 读SDImageView小记
读SDImageView小记入口下载前准备工作开始下载缓存入口- (void)sd_setImageWithURL:(nullable NSURL *)urlSDImageView做了非常好的API封装,最终方法做了以下这些事情:以class或者自定义key为关键字,从NSMapTable里找到operation并且取消如果没有指定延迟加载placeholder图片,先设置image...
2019-05-28 16:54:22
436
转载 Clang Attributes 黑魔法小记
Clang Attributes 是 Clang 提供的一种源码注解,方便开发者向编译器表达某种要求,参与控制如 Static Analyzer、Name Mangling、Code Generation 等过程,一般以__attribute__(xxx)的形式出现在代码中;为方便使用,一些常用属性也被 Cocoa 定义成宏,比如在系统头文件中经常出现的NS_CLASS_AVAILABLE_...
2019-05-20 10:56:31
684
原创 iOS全局变量的有趣的事
在开发过程中,您可能经常会遇到"duplicate symbol _xxx"的错误,大多都是变量重复,您可能需要给某一个类的变量改名字,为什么会出现类似的问题呢,我做了个试验,发现了很有意思的事情。试验一case1A.h声明extern NSString * kAppErrorDomainA.m实现NSString * kAppErrorDomain = @"...
2019-04-28 16:23:29
289
原创 ios Benchmarking
计算代码执行时间第一种:CFTimeInterval startTime = CACurrentMediaTime();CFTimeInterval endTime = CACurrentMediaTime();endTime - startTime;第二种:dispatch_benchmark(黑科技,不要发布,不要发布,不要发布,自己测试用即可)这个方法没有被公开声明...
2019-04-26 10:40:37
283
原创 ios __block修饰词底层实现原理
注:此文章为自己学习笔记,部分来自欧阳大哥博客https://www.jianshu.com/p/595a1776ba3a让我们看下代码://文件test.m#import <Foundation/Foundation.h>void test(){ //下面分别定义各种类型的变量 int a = 10; ...
2018-10-23 14:25:28
8949
转载 iOS触摸事件全家桶
此文紧用于自己记录笔记,无任何商业用途,转载地址为https://mp.weixin.qq.com/s/nPGJqZTkkLdMyWjHuKRCKgiOS触摸事件全家桶Lotheve Cocoa开发者社区 1周前本公众号内容均为本号转发,已尽可能注明出处。因未能核实来源或转发内容图片有权利瑕疵的,请及时联系本号,本号会第一时间进行修改或删除。 QQ : 3442093904 ...
2018-09-12 16:40:59
333
原创 cocoaPods私有库管理笔记
一、起因 随着项目的人越来越多,业越来越复杂,依赖和自主创建的库文件越来越多,项目也越来越多元化,库的管理也越来越麻烦,比如项目部分工程拆分并独立上线,会发现移植代码繁重而低效,因此需要用cocoaPods来管理众多的库文件,达到动态删减库文件的效果。二、开干1.创建一个私有的spec1️⃣github有一个公共的spec,可以通过命令 'open ~/.cocoapods/repos/ma...
2018-04-28 14:55:33
332
原创 纯自己记笔记,如有错误还请大神不吝赐教
原文:https://mp.weixin.qq.com/s/R1a1UPxr4a--quYM7RBc1QiOS的方法执行转发MyClass *myClass = [[MyClass alloc] init];[myClass printLog];这个方法会被动态转成 objc_msgSend(myClass,@selector(printLog));官方将此方法的定义为objc_msgSend(v...
2018-03-27 13:53:50
265
转载 iOS开发实战之Cookie注入
Cookie注入的使用场景:在开发中,我们常常会遇到这样一种场景:通过在一部分网络请求中注入Cookie信息让后台校验当前用户的登录状态以及用户权限在APP中打开一个需要登录用户才能看的页面,一般客户端会先判断是否登录,如果没有登录去登录。缺点每次都要判断,如果是付费内 容,还要引导用户去支付,这些都要去后台发起多个请求,去判断,增加了网络开销,如果
2017-08-09 18:15:08
351
转载 NSRunLoop的退出方式
1.启动RunLoop通过[NSRunLoop currentRunLoop]或者CFRunLoopGetCurrent()方式可以获取当前线程的runloop。根据苹果文档,启动一个runloop有以下三种方法:- (void)run; - (void)runUntilDate:(NSDate *)limitDate;- (void)
2017-08-08 17:12:55
2885
转载 解决iOS中使用UIWebView加载嵌入脚本中带有alert时卡住界面问题。
使用UIWebView的 stringByEvaluatingJavaScriptFromString方法时,在被执行的JS方法中不能有alert出现,否则可能会导致主线程阻塞。如:使用UIWebView的 stringByEvaluatingJavaScriptFromString方法时,在被执行的JS方法中不能有alert出现,否则可能会导致主线程阻塞。如:OC中:[web
2016-07-27 16:30:15
1316
转载 ios9键盘 level级别
如下图所示,当键盘已经弹起的时候,再显示我们自己写的确认窗口等window,会发现window被键盘挡住了。这是因为iOS9下系统键盘的windowLevel是很高的,达到10^7。而且进一步发现,这个值是系统允许的最大值。如果把某个window的windowLevel改成比10^7大的值,系统只会设为10^7。解决这个问题有两种方法:一个是把我们自己window的
2016-07-26 12:06:28
945
转载 iOS: 枚举类型 enum,NS_ENUM,NS_OPTIONS
一般情况下,我们采用C风格的enum关键字可以定义枚举类型。[cpp] view plaincopyenum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitio
2014-07-15 10:12:47
601
转载 UIViewController 中的 willMoveToParentViewController和didMoveToParentViewController的使用
关于这两个方法,也是IOS5之后才加上去的。在iOS 5.0及以后,iOS为UIViewController类添加了新的属性和方法:@property(nonatomic,readonly) NSArray *childViewControllers -(void)addChildViewController:(UIViewController *)childController
2014-05-30 11:49:01
1048
转载 iOS中为category添加@property支持
Objective-C runtime提供了Associative References支持,也就是说每一个对象都有一个可选的dictionary字典,我们可以向其添加key/value对。这是一个非常强大的功能,我们都知道Objective-C中支持category,我们可以在category中添加方法,但是它不允许我们添加实例变量。通过这个Associa
2014-05-06 18:01:49
1307
转载 利用NSCache提升效率
在ios中,苹果提供了,NSCache类和NSDictionary很相似,提供key,value的存储,不一样的是NSCache在内存吃紧的时候会做自动释放。遇到一个问题是,在使用大量图片的app中,需要从存储里面读取数据,每次都从文件系统里面读取文件会造成卡顿现象。解决办法就是把NSData对象缓存起来,先从NSCache里面读取数据,然后再从文件系统获取数据,提高效率。
2014-05-06 17:40:20
754
转载 Dispatch Sources
Dispatch Sources现代系统通常提供异步接口,允许应用向系统提交请求,然后在系统处理请求时应用可以继续处理自己的事情。Grand Central Dispatch正是基于这个基本行为而设计,允许你提交请求,并通过block和dispatch queue报告结果。dispatch source是基础数据类型,协调特定底层系统事件的处理。Grand Central Disp
2014-04-23 16:01:55
791
转载 UIView UIControl UITextField详解
今天看到有人总结了三个常用类:UIView、UIControl和UITextField的详细使用说明。感觉写的不错,好多方法和属性以前都没有仔细研究过。现在把链接记录在此,以备将来不时之需。UIView UIControl UITextField
2014-04-08 10:26:34
592
转载 dispatch_semaphore_create信号
自从ios4.0/mac osx10.6引入了GCD之后,让我们在使用多线程的时候确实方便了很多,关于GCD的一些介绍和使用本站中已经转过一位资深开发者的几篇系列文章,非常彻底的介绍了GCD的用法和一些特性,有兴趣的朋友可以去翻阅。但当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案
2014-03-31 10:28:44
1727
原创 将UIButton 设置背景颜色 有点击highlight效果
首先写个UIImage的类别 为的就是要点击效果。PS:直接 [self.rightBtn setBackgroundColor:color]是没有点击高亮效果的。@implementation UIImage (colorful)+ (UIImage *)imageWithColor:(UIColor *)color{ CGRect rect
2014-03-27 11:44:24
6936
转载 [Cocoa]深入浅出 Cocoa 多线程编程之 block 与 dispatch quene
深入浅出 Cocoa 多线程编程之 block 与 dispatch quene罗朝辉(http://blog.youkuaiyun.com/kesalinCC 许可,转载请注明出处block 是 Apple 在 GCC 4.2 中扩充的新语法特性,其目的是支持多核并行编程。我们可以将 dispatch_queue 与 block 结合起来使用,方便进行多线程编程。本文源代
2014-03-27 10:51:58
583
转载 hitTest:withEvent:
hitTest:withEvent:2011-12-15 17:19:35标签:触摸 职场 检测 休闲触摸事件。 窗口对象使用点击检测(hit-testing)以及响应链(responder chain) 来查找接收该触摸事件的视图。在点击检测中,hitTest:withEvent:; 如果这个方法返回YES,则在该视图层次的每!!!个视图上递归调用pointIns
2014-03-26 11:47:56
562
转载 IOS UIView touch事件 详解
前面说过UIViewController,但是UIView也是在MVC中非常重要的一层 。正是因为UIView是Iphone下所有界面的基础,所以官方专门写了一个文档“View Programming Guide for iOS”。通过这个可以很好的了解UIView的功能。 先来看看官方API的解释:The UIView class defines a rectangular
2014-03-26 10:58:31
846
原创 UITableView UITableViewStylePlain模型下 取消headerView的黏结性
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat sectionHeaderHeight =44; if (scrollView.contentOffset.ycontentOffset.y>=0) { scrollView.contentInset = UIEdgeInset
2014-03-22 18:42:49
1113
转载 UIWindow的一点儿思考
转载于:一片枫叶追求卓越,成功就会在不经意间追上你跟随自己的节奏学习,思考,总结,找到自己,别人才会找到你下一篇:ARC关于UIWindow的一点儿思考UIWindow的一点儿思考 每一个IOS程序都有一个UIWindow,在我们通过模板简历工程的时候,xcode会自动帮我们生成一个window,然后让它变成keyWindow并显示出来。这
2014-03-20 10:24:58
511
转载 UIView的layoutSubviews和drawRect方法何时调用
转自:http://jianyu996.blog.163.com/blog/static/112114555201305113018814/首先两个方法都是异步执行。layoutSubviews方便数据计算,drawRect方便视图重绘。 layoutSubviews在以下情况下会被调用: 1、init初始化不会触发layoutSubvie
2014-03-17 09:36:41
795
转载 [IOS] Storyboard全解析
原文地址:http://iaiai.iteye.com/blog/1493956(Storyboard)是一个能够节省你很多设计手机App界面时间的新特性,下面,为了简明的说明Storyboard的效果,我贴上本教程所完成的Storyboard的截图: 现在,你就可以清楚的看到这个应用究竟是干些什么的,也可以清楚的看到其中的各种关系,这就是Storyboard的强大之处了。如果你要制
2014-02-26 15:27:49
742
转载 iOS block的用法
本文来自台湾的某开发人员的博客,被墙,感觉讲的比较易懂,所以引过来。文字简体化了,原来是繁体,变数=变量,这个注意一下。本文的顺序是层层深入的,要想简单的了解,只看X.1 初探Block就好了本章学习目标:1. 了解何谓block。2. 了解block的使用方法。Block 是iOS在4.0之后新增的程式语法,严格来说block的概念并不算是基础程式设计的范围,对初学者来说
2014-02-25 15:26:10
558
转载 iOS多线程编程Part 2/3 - NSOperation
原文地址:http://www.hrchen.com/2013/06/multi-threading-programming-of-ios-part-2/多线程编程Part 1介绍了NSThread以及NSRunLoop,这篇Blog介绍另一种并发编程技术:NSOPeration。NSOperation & NSOperationQueue从头文件NSOperati
2014-02-21 15:04:23
487
转载 iOS多线程编程Part 1/3 - NSThread & Run Loop
原文地址:http://www.hrchen.com/2013/06/multi-threading-programming-of-ios-part-1/前言多线程的价值无需赘述,对于App性能和用户体验都有着至关重要的意义,在iOS开发中,Apple提供了不同的技术支持多线程编程,除了跨平台的pthread之外,还提供了NSThread、NSOperationQueu
2014-02-21 15:02:03
1002
转载 iOS多线程编程Part 3/3 - GCD
原文地址:http://www.hrchen.com/2013/07/multi-threading-programming-of-ios-part-3/iOS多线程编程Part 3/3 - GCD前两部分介绍了NSThread、NSRunLoop和NSOperation,本文聊聊2011年WWDC时推出的神器GCD。GCD: Grand Central Dispatch,是一组用于实
2014-02-21 14:56:51
655
转载 ios7 状态栏与导航栏布局与ScrollView的特性分析
前言iOS7是目前iOS史上最颠覆的一次改版。它的出现令人兴奋,因为它将会带我们进入一个全新的时代;它的到来也让我们忧心,因为它颠覆了一切,包括我们过去做过的很多努力。但是,相信大家乐意为这个全新时代做更多的努力,因为,它值得期待。 最近打算写一系列针对iOS7新特性的文章,今天就从最基本和简单的页面布局开始吧。 从头说起当我看见iOS7那个半透明设计的n
2014-02-12 14:07:09
1457
原创 CGRectInset、CGRectOffset详解
CGRectInset先看它的定义,是这个样子:CG_EXTERN CGRect CGRectInset(CGRect rect, CGFloat dx, CGFloat dy)。它是以rect为中心,根据dx,dy的值来扩大或者缩小,负值为扩大,正直为缩小。可以他们理解成为宽度和高度的偏移量。为了更好的理解,我们来看下具体的实现:UIView *view1 = [[UIVie
2014-01-21 17:12:13
1846
转载 loadView学习总结
UIViewController类或其子类会在初始化时创建一个UIView对象,会作为控制器的默认视图显示出来,可以通过self.view寻址访问。但没有调用loadView方法时,self.view=nil。loadView在每一次使用self.view这个property,并且self.view为nil的时候被调用,用以产生一个有效的self.view。这个接口原本是为了让我们自定义view用
2014-01-21 15:51:48
582
原创 iOS获取设备的序列号
不知道是否有童鞋们做应用的时候跟我一样,用设备的序列号来识别设备进行一些设备控制,因为我做的是银行内部应用,不会上APP Store,不知道这个方法是否能通过苹果的检测,如果有知道的童鞋,请不要吝啬的告诉我哦~~ 废话不多说,上代码! ①:导入三方文件 下载地址:http://pan.baidu.com/s/1mgqdIu0 ②:导入iokit.framework,
2013-12-27 15:07:43
3166
iOS pushViewController实例,有层次效果和手势滑动,很火很实用
2014-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人