![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IOS
stone4354
这个作者很懒,什么都没留下…
展开
-
Objective-C语法之代码块(block)的使用
代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。脱字符(^)是块的语法标记。按照我们熟悉的参数语法规约所定义的返回值以及块的主体(也就是可以执行的代码)。下图是如何把块变量赋值给一个变量的语法讲解:按照调用函数的方式调用块对象变量就可以了:int result = myBlock(4转载 2017-05-24 16:47:05 · 192 阅读 · 0 评论 -
RunLoop总结:RunLoop的应用场景(四)
今天要介绍的RunLoop使用场景很有意思,在做长期项目,需要跟踪解决用户问题非常有用。 使用RunLoop 监测主线程的卡顿,并将卡顿时的线程堆栈信息保存下来,下次上传到服务器。参考资料关于今天要介绍的使用RunLoop 监测主线程卡顿的资料如下: * 微信iOS卡顿监控系统 (这篇文章要首先阅读,了解有哪些情况会引起主线程卡顿,监测到卡顿后怎么处理等) * 监控卡顿转载 2017-06-18 16:14:21 · 382 阅读 · 0 评论 -
RunLoop总结:RunLoop的应用场景(五)
今天要介绍的RunLoop应用场景感觉很酷炫,我们可能不常用到,但是对于做Crash 收集的 SDK可能会用得比较频繁吧。相比关于RunLoop 可以让应用起死回生,大家都听说过,可是怎么实现呢?今天我就来实际试验一下。资料sunnyxx线下分享RunLoop (这是一份关于线下分享与讨论RunLoop的视频,备用地址:https://pan.baidu.com/s/1pLm4Vf9)转载 2017-06-18 16:16:28 · 298 阅读 · 0 评论 -
RunLoop总结:RunLoop基础知识
没有实际应用场景,很难理解一些抽象空洞的东西,所以前面几篇文章先介绍了RunLoop的几个使用场景。 另外AsyncDisplayKit中也有大量使用RunLoop的示例。关于实际的使用RunLoop 的案例和使用场景就不总结了,今天总结一点RunLoop的基础知识和概念。什么是RunLoop?顾名思义,它就是一个运行循环。一个RunLoop 就是一个用于处理既定工作和接收到的转载 2017-06-18 16:18:49 · 380 阅读 · 0 评论 -
RunLoop总结:RunLoop 与GCD 、Autorelease Pool之间的关系
如果在面试中问到RunLoop相关的知识,很有可能也会问到RunLoop与GCD、Autorelease Pool有没有关系,哪些地方用到了GCD、Autorelease Pool等。So,本文就总结一下RunLoop与GCD和 Autorelease Pool 之间的关系,看看在RunLoop实现中,哪些地方间接或者直接使用、操作到了GCD 和Autorelease Pool。Run转载 2017-06-18 16:21:35 · 322 阅读 · 0 评论 -
RunLoop的应用和RunLoop的面试题
一:RunLoop的应用 #import "ViewController.h"@interface ViewController ()/** 注释 */@property (nonatomic, strong) NSThread *thread;@end@implementation ViewController/** * 1:用NSThread创建线程的时转载 2017-06-18 20:41:04 · 341 阅读 · 0 评论 -
UITextField中文输入法输入时对字符长度的限制
如题的问题,又是个让我抓狂了大半天的问题,还是做个记录,有与类似问题的同学可参考,但不一定对。具体问题还需具体分析。我遇到的需求是这样的:有一个输入框,输入框内输入文字,文字字数限制在20字。我采用了UITextField作为我的输入框控件,并且在委托方法:-(BOOL)textField:(UITextField *)textField shouldChangeCha转载 2017-06-08 17:31:34 · 359 阅读 · 0 评论 -
iOS动态性(一) 一行代码实现iOS序列化与反序列化(runtime)
一、变量声明为便于下文讨论,提前创建父类Biology以及子类Person:Biology:@interface Biology : NSObject{ NSInteger *_hairCountInBiology;}@property (nonatomic, copy) NSString *introInBiology;@end@implementation Bi转载 2017-07-01 14:30:00 · 297 阅读 · 0 评论 -
iOS动态性(二)可复用而且高度解耦的用户统计埋点实现(Method Swizzling(Hook))
用户统计.jpeg用户行为统计(User Behavior Statistics, UBS)一直是移动互联网产品中必不可少的环节,也俗称埋点。在保证移动端流量不会受较大影响的前提下,PM们总是希望埋点覆盖面越广越好。目前常规的做法是将埋点代码封装成工具类,但凡工程中需要埋点(如点击事件、页面跳转)的地方都插入埋点代码。一旦项目越来越复杂,你会发现埋点的代码散落在程序的各个角落,不利于维转载 2017-07-01 17:54:13 · 397 阅读 · 0 评论 -
iOS动画(一):拍电影与CABasicAnimation
动效设计一直是iOS平台的优势,良好的动效设计可以很好地提升用户体验。而动画则是动效的基础支撑。本动画系列将从易到难逐步分析,本文就是第一站:CABasicAnimation。通过本文,你能收获到:以拍电影的思路写动画代码编写自己的简单动画库一、概念这个部分你需要了解以下概念: CALayer、CAAnimation、拍电影(R U kidding me?)1、CA转载 2017-07-02 00:13:32 · 283 阅读 · 0 评论 -
RunLoop 总结:RunLoop的应用场景(二)
上一篇讲了使用RunLoop保证子线程的长时间存活,而不是执行完任务后就立刻销毁的应用场景。这一篇就讲述一下RunLoop如何保证NSTimer在视图滑动时,依然能正常运转。参考资料好的书籍都是值得反复看的,那好的文章,好的资料也值得我们反复看。我们在不同的阶段来相同的文章或资料或书籍都能有不同的收获,那它就是好文章,好书籍,好资料。 关于iOS 中的RunLoop资料非常的少,以下资转载 2017-06-18 16:11:27 · 413 阅读 · 0 评论 -
RunLoop 总结:RunLoop的应用场景(一)
参考资料好的书籍都是值得反复看的,那好的文章,好的资料也值得我们反复看。我们在不同的阶段来相同的文章或资料或书籍都能有不同的收获,那它就是好文章,好书籍,好资料。 关于iOS 中的RunLoop资料非常的少,以下这些资料都是非常好的。CF框架源码(这是一份很重要的源码,可以看到CF框架的每一次迭代,我们可以下载最新的版本来分析,或与以下文章对比学习。目前最新的是CF-1153.18转载 2017-06-18 16:06:08 · 288 阅读 · 0 评论 -
RunLoop总结:RunLoop的应用场景(三)
今天要讲的RunLoop的应用场景可能太简单了,所以东西比较少。因为跟UITableView、UICollectionView等的滑动优化有关,就顺便总结一下会影响UITableView、UICollectionView等视图滑动流畅的因素。参考资料好的书籍都是值得反复看的,那好的文章,好的资料也值得我们反复看。我们在不同的阶段来相同的文章或资料或书籍都能有不同的收获,那它就是好文章,好书转载 2017-06-18 16:01:31 · 327 阅读 · 0 评论 -
编写高质量的Objective-C代码
点标记语法属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法。良好的风格:view.backgroundColor = [UIColor orangeColor];[UIApplication sharedApplication].delegat转载 2017-05-24 17:54:54 · 241 阅读 · 0 评论 -
IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
首先了解一下CGContextRef:An opaque type that represents a Quartz 2D drawing environment.Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框.自己学习时实现的demo,希望对大家有帮助,具体的转载 2017-05-24 18:04:50 · 275 阅读 · 0 评论 -
IOS远程消息推送
一、引言IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://my.oschina.net/u/2340880/blog/405491这篇博客中有详细的介绍,这里主要讨论远程推送的流程与配置过程。二、远程推送机制的原理1、从一张很火的图说起搜索IOS远程推送,你总能看到一张如下的流程示意图,因为这张图确实很火,所以我也将它引用在此:转载 2017-05-15 16:51:58 · 651 阅读 · 0 评论 -
Lua与OC相互调用
下面将讲解一下如何在iOS里调用Lua函数,以及Lua函数如何调用iOS本地函数。转载请注明出处。原文出处 http://www.cnblogs.com/winewind/archive/2012/09/06/2673094.html1 lua_State *l;2 l = lua_open();lua_open 若要使用Lua,必须先初始化一个lua_State环境,以后的转载 2017-05-16 15:10:15 · 1585 阅读 · 0 评论 -
使用LuaScriptCore来让Lua与iOS进行交互
摘要: Lua的C Api相对来说不容易理解和掌握,需要投入一定的时间去学习和累积这方面的经验。而LuaScriptCore就是为了解决这些问题而诞生,他简化了扩展Lua的难度,让开发者可以通过自己熟悉的语言来扩展Lua,完美解决Lua与原生代码之间的通讯问题。可能有一些人对lua并不是太熟悉,它其实跟JavaScript、Ruby、Python等同为脚本语言。但是更加轻量,更加简转载 2017-05-16 15:16:21 · 331 阅读 · 0 评论 -
IOS推送证书设置
iOS 证书设置指南 iOS证书命令证书有效期 openssl x509 -in xxx.pem -noout -dates 连接APNS测试证书是否合法 开发环境openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert xxx.pem -key xxx.p原创 2017-05-17 09:56:31 · 570 阅读 · 0 评论 -
IOS开发之static变量
Objective-C 支持全局变量主要有两种实现方式:(1)第一种和C/C++中的一样, 使用"extern"关键词;(2)另外一种就是使用单例实现。 (比如我们经常会把一个变量放在AppDelegate里面作为全局变量来访问, 其中AppDelegate就是一个单例类) 在Objective-C中如何实现像C++中那样的静态成员变量呢?你需要做的是在一个类A的i转载 2017-05-10 11:35:53 · 348 阅读 · 0 评论 -
iOS ARC环境下dealloc的使用
在MRC时代,我们需要在 dealloc中做很多,比如释放对象,等等;如今我们已经进入ARC时代,对于普通对象的释放,系统已经帮我们做好了;那是否可以高枕无忧了呢?在ARC下我们应该做什么?观点:ARC下,系统可以帮我们释放该对象,及其包含的对象;但是却无法释放不属于该对象的一些东西,如:1.通知的观察者,或KVO的观察者转载 2017-06-01 17:41:33 · 317 阅读 · 0 评论 -
序列化和反序列化的简单理解
摘自:http://hi.baidu.com/popln/blog/item/c3dd9302bb37e994d43f7ccb.html开篇1到底这个序列化有啥作用?面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中(来源于某教材的一段话) 本人的理解是当你于转载 2017-06-18 15:06:29 · 248 阅读 · 0 评论 -
iOS开源项目:JSONKit
一个Json解析库,其特点是代码简单,只有一个.h和.m文件。https://github.com/johnezang/JSONKit JSON(JavaScript Object Notation)是一个轻量级的,基于文本的,序列结构化数据格式. 由RFC 4627定义.提供以下主要类型:nullBoolean true and falseNumberStringAr转载 2017-06-18 15:57:01 · 242 阅读 · 0 评论 -
safari调试iPhone app web页面
Overview当下移动端开发过程中大量使用前段H5、js等等技术,而这些web页面的调试在Xcode控制台中不太明了,经常我们移动app运行了就是方法,但是不能显示响应的效果,这时候或许就是已经报错了,但是我们在Xcode控制台是看不到这些错误。这时候我们就可以用功能强大的Safari浏览器来开启开发模式连接iPhone来调试app脸面的web页面了。Safari设置打开Safari转载 2017-06-22 15:51:22 · 808 阅读 · 0 评论