![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios开发
文章平均质量分 65
Keep_Moving31038
这个作者很懒,什么都没留下…
展开
-
OS缓存策略——NSCache的简单使用
今天来共同学习一下NSCache的相关知识,有疏忽的地方,还望各位不吝赐教。一、简介1、NSCache是苹果官方提供的的缓存类,具体使用是和NSDictionary很相似的,在AFNetworking和SDWebImage第三方框架中被用作管理缓存。2、NSCache在系统内存很低时会自动释放对象,但是在模拟器进行演示的时候不会释放,这一点要注意,所以最好是在内存进行警告时主动去调用方转载 2017-09-04 19:02:08 · 583 阅读 · 0 评论 -
Instruments 检测内存的使用
内存管理是 iOS 里一大重要内容,经历过 MRC 时代的开发者或多或少都被引用计数折磨过,后来苹果推出了 ARC (Automatic Reference Counting),这一技术大大减轻了内存管理的工作量,也降低了因内存管理而出错的概率。但在 ARC 下还是有一些场景会导致内存泄漏,例如循环引用、强引用不再使用的对象。Instruments Leaks我写了一个 Demo 来进行下转载 2017-09-04 19:03:19 · 308 阅读 · 0 评论 -
从一道网易面试题浅谈OC线程安全
今天去网易面试,面试官出了一道面试题,下面代码会发生什么问题?12345678@property (nonatomic, strong) NSString *target;//....dispatch_queue_t queue = dispatch_queue_create("parallel", DISPATCH_转载 2017-09-04 19:06:34 · 424 阅读 · 0 评论 -
如何统计iOS产品不同渠道的下载量?
一、前言在开发过程中,Android可能会打出来很多的包,用于标识不同的商店下载量。原来觉得苹果只有一个商店:AppStore,如何做出不同来源的统计呢?本篇文章就是告诉大家如何做不同渠道来源统计。二、正文先看一下苹果自家统计到的数据:这个是在没有对下载链接做任何处理的情况下在itunesconnect后台看到的数据。怎么看到这个页面呢?登录https://itunesco转载 2017-09-04 19:08:39 · 752 阅读 · 0 评论 -
iOS中的蓝牙开发
iOS蓝牙模块支持BLE4.0设备通讯。在使用蓝牙的过程中,如果是iOS10及以上机型需要在info.plist文件中添加NSBluetoothPeripheralUsageDescription描述字段,向用户声明使用蓝牙的意图一、CBCentralManager1. 初始化CBCentralManager 对象用于扫描、发现、连接远程的外围设备。系统提供了两个初始化该类的方法转载 2017-09-04 19:09:30 · 578 阅读 · 0 评论 -
iOS面试必看,最全梳理
序言目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了。今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,加之,培训机构一火车地向用人单位输送iOS开发人员,打破了生态圈的动态平衡。矫情一下,言归正传,我奉献一下,为iOS应聘者梳理一下面试题,希望能助一臂之力!OC的理解与特性OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装、继承、多态。它既具转载 2017-09-04 19:18:33 · 936 阅读 · 0 评论 -
单向数据流动的函数式 View Controller
View Controller 向来是 MVC (Model-View-View Controller) 中最让人头疼的一环,MVC 架构本身并不复杂,但开发者很容易将大量代码扔到用于协调 View 和 Model 的 Controller 中。你不能说这是一种错误,因为 View Controller 所承担的本来就是胶水代码和业务逻辑的部分。但是,持续这样做必定将导致 Model View C转载 2017-09-05 17:55:52 · 689 阅读 · 0 评论 -
搞 iOS 学算法有意义吗?
最近公众号写了两周的面试题,题目有少量涉及算法,有少量涉及底层原理。总有一些人在后台问:面试这个有意义吗?我不会还不是照样做 App。还有一些人说:这些题只适合问应届生。于是我今天就想聊聊这个话题:搞 iOS 开发,研究算法和底层有意义吗?雷军说:站在风口上,猪都能飞起来。但是雷军没有说,风口上的风不是一直都吹的。飞起来的猪,如果没有抓住机会到达彼岸,那么暂时飞一阵子之后,还是会重重地转载 2017-09-05 18:03:30 · 230 阅读 · 0 评论 -
关于block使用的5点注意事项
1、在使用block前需要对block指针做判空处理。不判空直接使用,一旦指针为空直接产生崩溃。if (!self.isOnlyNet) { if (succBlock == NULL) { //后面使用block之前要先做判空处理 return; } id data = [NSKeyedUnarchiver unarchiveO转载 2017-09-05 18:05:57 · 319 阅读 · 0 评论 -
iOS开发-由浅至深学习block
关于block在iOS 4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调。这不免让我们想到在C函数中,我们可以定义一个指向函数的指针并且调用:bool executeSomeTask(void) { //do something and return if success or not}bool (*taskPoin转载 2017-09-05 18:10:31 · 236 阅读 · 0 评论 -
iOS-Block的使用
为什么题目是“Block的使用你看我啊”,而不是牛逼哄哄的“Block你看我就够了”,原因是本文并不会讲解Block在C++中的实现部分,而是停留在OC语言中。主要讲诉一些语法和使用。(如果本文中有讲述不对或者不准确的地方欢迎大家提出来)1、Block是什么? - 匿名函数 - 截获自动变量2、Block语法。3、Block类型变量。4、Block的用途。 - 作为函数参数转载 2017-09-05 18:11:57 · 210 阅读 · 0 评论 -
iOS开发之---block的使用(详解)
block代码块主要用于对象之间的通信(反向传值和方法传递)。首先,我们从内存管理方面来了解一下block block:我们称代码块,他类似一个方法。而每一个方法都是在被调用的时候从硬盘到内存,然后去执行,执行完就消失,所以,方法的内存不需要我们管理,也就是说,方法是在内存的栈区。所以,block不像OC中的类对象(在堆区),他也是在栈区的。如果我们使用block作为一个对象的属转载 2017-09-05 18:13:13 · 240 阅读 · 0 评论 -
block的使用和注意事项
本文不讲block如何声明及使用,只讲block在使用过程中暂时遇到及带来的隐性危险。主要基于两点进行演示:1.block 的循环引用(retain cycle)2.去除block产生的告警时,需注意问题。有一次,朋友问我当一个对象中的block块中的访问自己的属性会不会造成循环引用,我哈绰绰的就回了一句,不会。兄弟,看完这个,希望你能理解我为什么会说不转载 2017-09-05 18:14:06 · 373 阅读 · 0 评论 -
iOS开发-Protocol协议及委托代理(Delegate)传值
前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做,它不关心。当一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必要实现的方法,你没有去实现,那么编译器就会报警告,来提醒你没有遵守××协议。注意,我这里说的是转载 2017-09-05 18:15:09 · 333 阅读 · 0 评论 -
iOS中的delegate的用法和规范
转载请注明出处http://blog.csdn.net/uxyheaven/article/details/48261699delegate是Objective-C编写的应用中各种对象之间互相调用的主要方式之一. 通常情况下, 对象可以接收的消息都通过在接口文件中声明的方法来表示.@protocol MyProtocol NSObject>- (void)func;@end123转载 2017-09-05 18:16:00 · 1600 阅读 · 0 评论 -
UILabel简单高效实现圆角的方式
需求我们会经常遇到这样一个需求,给TableViewCell添加标签,例如:饿了么App中店铺会有,减、特、新等标签,这些标签一般都是用UILabel控件实现,UILabel中设置text,textColor,backgroundColor,以及cornerRadius。饿了么示例.PNG问题这个需求要求我们做圆角,业界也有很多做圆角的方式,最简单的就是设置label.转载 2017-09-06 10:40:18 · 4977 阅读 · 0 评论 -
React中setState同步更新策略
React中setState同步更新策略从属于笔者的Web 前端入门与工程实践中的React入门与最佳实践系列总纲系列文章,推荐阅读2016-我的前端之路:工具化与工程化。setState 同步更新我们在上文中提及,为了提高性能React将setState设置为批次更新,即是异步操作函数,并不能以顺序控制流的方式设置某些事件,我们也不能依赖于this.state来计算未来状转载 2017-09-06 10:40:37 · 359 阅读 · 0 评论 -
react native仿微信PopupWindow效果
在原生APP开发中,相信很多开发者都会见到这种场景:点击右上角更多的选项,弹出一个更多界面供用户选择。这种控件在原生开发中Android可以用PopupWindow实现,在iOS中可以用CMPopTipView,也可以自己写一个View实现。其类似的效果如下图所示: 实现思路分析: 要实现上面的视图,有很多种实现方式。前面的文章说过,要实现弹框相关的可以用React Native转载 2017-09-06 10:40:57 · 431 阅读 · 0 评论 -
手机号码正则校验
/** * 手机号码验证 * * @param mobileNumbel 传入的手机号码 * * @return 格式正确返回true 错误 返回fals */-(BOOL) isMobileNumble:(NSString *)mobileNumbel{ /** * 手机号码 * 移动:134[0-8],135,136,137原创 2017-09-06 10:41:27 · 307 阅读 · 0 评论 -
iOS 彻底学会使用delegate
委托delegation的介绍: 委托delegation是一种简单但是功能强大的设计模式,它的功能是程序中一个对象代表另一个对象,或者一个对象与另外一个对象协同工作。委托对象保留了另外一个对象的引用,即就是委托,以及在合适的时候发送消息给委托。消息通知事件的委托方法,委托对象将要处理或已经处理。委托可能通过更新本身或者本应用的其他对象的状态或者外观来对消息进行响应,在某些转载 2017-09-06 10:43:41 · 260 阅读 · 0 评论 -
ios中关于delegate(委托)的使用心得
从开始从事OC工作到现在大概1年多了,从当初接触oc的"协议"的不明白,到现在代码中随处可见的委托,协议,其中感悟颇多。首先,大家应该都明白的是委托是协议的一种,顾名思义,就是委托他人帮自己去做什么事。也就是当自己做什么事情不方便的时候,就可以建立一个委托,这样就可以委托他人帮自己去实现什么方法。其次,我简单的总结了一下自己用到的委托的作用有两个,一个是传值转载 2017-09-06 10:45:20 · 419 阅读 · 0 评论 -
关于iOS中委托(Delegate)的几点看法
1、应用场景:对象A需要从网络上请求一个数据,就让负责网络请求的B发送请求,然后A干其他事去了,B在等待数据返回;一旦数据返回,它就会通知A。一般,会把B的委托设置成A,即B.delegate = A;然后数据来了,B就调用[self.delgate receivedData:xxx];而delegate会定义成:iddelegate //代码1但其实,完全可以写成:转载 2017-09-06 10:46:05 · 348 阅读 · 0 评论 -
iOS 彻底学会使用delegate
委托delegation的介绍: 委托delegation是一种简单但是功能强大的设计模式,它的功能是程序中一个对象代表另一个对象,或者一个对象与另外一个对象协同工作。委托对象保留了另外一个对象的引用,即就是委托,以及在合适的时候发送消息给委托。消息通知事件的委托方法,委托对象将要处理或已经处理。委托可能通过更新本身或者本应用的其他对象的状态或者外观来对消息进行响应,在翻译 2017-09-06 10:46:57 · 221 阅读 · 0 评论 -
iOS中的delegate的用法和规范
# iOS中的delegate的用法和规范 转载请注明出处http://blog.csdn.net/uxyheaven/article/details/48261699delegate是Objective-C编写的应用中各种对象之间互相调用的主要方式之一. 通常情况下, 对象可以接收的消息都通过在接口文件中声明的方法来表示.@protocol MyProtocol NSObject原创 2017-09-06 10:48:17 · 271 阅读 · 0 评论 -
iOS开发——从一道题看Delegate
iOS开发——从一道题看Delegate2016-06-01 06:39 编辑: cocopeng 分类:iOS开发 来源:神兽gcc的简书17 6093iOSDelegate招聘信息:java高级软件工程师iOS软件工程师Web后端高级开发工程师Cocos2d-x游戏客户端开发[苏州]前端+后端 资深开发工程师服务器端高级工程师C++开发工转载 2017-09-06 10:49:47 · 267 阅读 · 0 评论 -
深入理解RunLoop
RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。目录RunLoop 的概念RunLoop 与线程的关系RunLoop 对转载 2017-09-07 11:06:47 · 249 阅读 · 0 评论 -
ios-category解析
category精简于Dive into Category一、作用a) 将类的实现分开在几个不同的文件中b) 声明私有方法c) 模拟多继承d) 把framework的私有方法公开二、与extension的异处extension是编译器决议,和类的头文件里的@interface以及实现文件里面的@implement一起形成一个完整的类。你必须用一个类的源码才能为它ex转载 2017-09-07 11:07:10 · 309 阅读 · 0 评论 -
iOS开发中ViewController的页面跳转和弹出模态
ViewController 页面跳转从一个Controller跳转到另一个Controller时,一般有以下2种: 1、利用UINavigationController,调用pushViewController,进行跳转;这种采用压栈和出栈的方式,进行Controller的管理。调用popViewControllerAnimated方法可以返回。 复制代码代码如下:转载 2017-09-07 21:29:54 · 2400 阅读 · 0 评论 -
Category , Extension , Protocol几个概念
1. Category 利用Objective-C的动态运行时分配机制,Category提供了一种比继承更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可以为任何已经存在的class添加方法,包括那些没有源代码的类。 (1)无法向类中添加新的实例变量,类别没有位置容纳实例变量。 (2)名称冲突,即当类别中的方法与原始类方法名称冲突时,类别具有更翻译 2017-09-07 21:35:39 · 234 阅读 · 0 评论 -
iOS开发-Protocol协议及委托代理(Delegate)传值
前言:因为Object-C是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做,它不关心。当一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必要实现的方法,你没有去实现,那么编译器就会报警告,来提醒你没有遵守××协议。注意,我这里说的是原创 2017-09-17 18:58:39 · 284 阅读 · 0 评论 -
iOS 使用MVVM模式实现Cell的点击响应
卷首最近新工作中用到的RAC+MVVM的开发模式,由于之前都是用MVC,从自己的菜鸡水平感觉这两种设计模式在思想上还是有些微区别的,然后自己也是看了挺多关于这两个模式异同与使用利弊的文章,但是说真的,代码这个东西光看看不出个花来,还是要写出来才能体会的更深,所以我不讲这两种模式的来龙去脉,我也讲不清 ^_^, 要是看过比较多理论上的东西,再结合一下代码理理思路还是极好滴。转载 2017-08-31 10:48:36 · 290 阅读 · 0 评论 -
iOS绘图框架CoreGraphics分析
由于CoreGraphics框架有太多的API,对于初次接触或者对该框架不是十分了解的人,在绘图时,对API的选择会感到有些迷茫,甚至会觉得iOS的图形绘制有些繁琐。因此,本文主要介绍一下iOS的绘图方法和分析一下CoreGraphics框架的绘图原理。一、绘图系统简介iOS的绘图框架有多种,我们平常最常用的就是UIKit,其底层是依赖CoreGraphic转载 2017-08-31 10:46:39 · 273 阅读 · 0 评论 -
iOS开发过程中的各种tips
iOS开发过程中,总有那么一些个小问题让人纠结,它们不会让程序崩溃,但是会让人崩溃。除此之外,还将分享一些细节现在我通过自己的总结以及从其他地方的引用,来总结一下一些常见小问题。https://github.com/koknine/NOTE本篇长期更新,多积累,多奉献,同时感谢其中一些文章的作者的整理,感谢!iOS高级开发实战讲解这是我在网上搜索到的iOS高级开发实战讲解,转载 2017-08-31 09:58:51 · 494 阅读 · 0 评论 -
Objective-C编码规范:26个方面解决iOS开发问题
介绍我们制定Objective-C编码规范的原因是我们能够在我们的书,教程和初学者工具包的代码保持优雅和一致。即使我们有很多不同的作者来完成不同的书籍。http://www.90159.com/2015/06/17/objective-c%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83%EF%BC%9A26%E4%B8%AA%E6%96%B9%E9%9D%A转载 2017-08-31 09:57:48 · 365 阅读 · 0 评论 -
ios调用相机和照片
http://www.cnblogs.com/fantasy940155655/p/5799132.html//添加代理方法@interface MineViewController () UINavigationControllerDelegate, UIImagePickerControllerDelegate, UIActionSheetDelegate>转载 2017-08-31 09:56:14 · 226 阅读 · 0 评论 -
Block的内部实现原理
抛砖引玉先给出问题,大家思考下结果吧,如果分别调用以下两个方法,结果如何?void blockFunc1(){ int num = 100; void (^block)() = ^{ NSLog(@"num equal %d", num); }; num = 200; block();}void blockFunc2(){转载 2017-08-30 08:58:32 · 309 阅读 · 0 评论 -
如何将 iOS 项目的编译速度提高5倍
前言贝聊目前开发的两款App分别是贝聊家长版和贝聊老师版,最近因为在快速迭代开发新功能,项目规模急速增长,单个端业务代码约23万行,私有库约6万行,第三方库代码约15万行,单个客户端的代码行数约60万。现在打包一次耗时需要11~12分钟。虽然还远远比不上 Facebook 的40分钟,但是我们在内测的时候,经常一天要发布内测版两到三次。打包时CPU占用基本上是百分百的,因为没有专门的 CI转载 2017-08-30 08:56:30 · 394 阅读 · 0 评论 -
开发者所需要知道的 iOS 11 SDK 新特性
新增框架新加入 SDK 的大的框架有两个,分别是负责简化和集成机器学习的 Core ML 和用来创建增强现实 (AR) 应用的 ARKit。Core ML自从 AlphaGo 出现以来,深度学习毫无疑问成了行业热点。而 Google 也在去年就转变 Mobile-first 到 AI-first 的战略。可以说一线的互联网企业几乎都在押宝 AI,目前看来机器学习,特别是深度转载 2017-08-29 19:46:59 · 326 阅读 · 0 评论 -
iOS 音视频采集与编码
学习过音视频的都知道,不常用的话就会容易忘记。因此,记下以前学些的点滴。(这不是入门贴)主要分为以下主题做学习记录:视频采集与编码音频采集与编码video.png视频采集与编码视频采集获取输入设备NSError *deviceError; AVCaptureDeviceInput *inputDevice; for (AVCaptureD转载 2017-08-29 19:45:57 · 2235 阅读 · 0 评论 -
iOS 11 : CORE ML—浅析
导语:在刚刚过去的WWDC上,苹果发布了Core ML这个机器学习框架。现在,开发者可以轻松的使用Core ML把机器学习功能集成到自己的应用里,让应用变得更加智能,给用户更牛逼的体验。苹果在 iOS 5 里引入了 NSLinguisticTagger 来分析自然语言。iOS 8 出了 Metal,提供了对设备 GPU 的底层访问。去年,苹果在 Accelerate 框架添加了 Bas转载 2017-08-29 19:45:07 · 437 阅读 · 0 评论