
ObjC
文章平均质量分 86
WoodBear009
这个作者很懒,什么都没留下…
展开
-
记iOS扩展(匿名类别)使用引发的崩溃
扩展(匿名类别)是在iOS开发中经常用到的技巧,一般通常的用法是这样:.h文件@interface JH_WebViewController : JHBaseViewController-(id)initWithUrl:(NSString *)url;@end.m文件#import "JH_WebViewController.h"@interface JH_WebV原创 2017-01-11 12:32:32 · 3595 阅读 · 0 评论 -
socket编程[oc](逻辑数据的处理)
之前写了一下socket编程中半包、粘包的处理点击打开链接,这篇再写写另一个相关问题,逻辑数据的处理物理数据包与逻辑数据包: 首先说明的是,socket传输中物理数据包、逻辑数据包的概念是我自己臆想、“定义”的,主要是方便我后面去描述问题.那么什么是我所说的物理数据包与逻辑数据包呢? 举个例子,假如我想传送一段文本“这篇博客写的是socket编程[oc](逻辑数据的处理)”,可能因原创 2017-03-09 13:09:15 · 3314 阅读 · 3 评论 -
socket编程[oc](粘包、半包处理)
在做socket编程时,如果是做tcp连接,那就不可避免的会遇到粘包与半包的问题,粘包就是多组数据被一并接收了,粘在了一起,无法做划分;半包就是有数据接收不完整,无法处理。要解决粘包、半包的问题,一般在设计数据(消息)格式时会约定好一个字段专门用于描述数据包的长度,这样就使数据有了边界,依靠这个边界,就能把每组数据划分出来,数据不完整时也能获知数据的缺失。原创 2016-11-24 15:29:46 · 3728 阅读 · 1 评论 -
CFRunLoop源码分析笔记
之前看过不少别人博客里对CFRunLoop源码的分析,但自己一直没有去看过,今天回顾相关知识时,决定自己去看看相关的源码实现,确实又有了一些新的认识与收获.CFRunLoopRun、CFRunLoopRunInMode首先是两个简单的入口函数//两个函数分别是让runloop跑在kCFRunLoopDefaultMode下,与让runloop跑在指定mode下//两个函数区别不...原创 2017-03-12 22:15:11 · 2849 阅读 · 0 评论 -
iOS runtime forwardInvocation一些总结
代码:TestModel- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector { if(aSelector == @selector(testMethod)) { return [NSMethodSignature signatureWithObjCTypes:"v@:"];原创 2017-01-19 10:41:34 · 4446 阅读 · 1 评论 -
《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》读书笔记(上)
1.OC对象所占内存总是分配在"堆"中,而绝不会分配在"栈"中,不能再栈中分配OC对象。"栈"中对象借助栈帧进行维护,"堆"中对象的管理借助引用计数机制.-(NSMutableArray *)test{ //ary指针本身在栈上,但分配的数组对象在堆上,这也就解释了,为什么函数返回后,ary会随着栈帧弹出而被释放, //但外部依然能使用NSMutableArray,因为NS原创 2017-04-05 10:10:57 · 723 阅读 · 0 评论 -
isa、class、meta-class白话总结
之前看过不少关于runtime的相关文章,其中对于isa、class、meta-class概念的描述都是比较抽象、晦涩的,虽然理解这些概念在实践中不一定能用的上,但既然学习了runtime,还是应该尽可能的把这些相关概念弄明白,下面,用我自己不太严谨的白话,粗略总结梳理一下我对这部分的理解与体会。对象与类,面向对象编程中最基本的概念,对象就是具体的实例,类则是一个抽象的概念。而在OC中类则不仅原创 2017-01-06 10:38:04 · 2814 阅读 · 0 评论 -
通过NSURLSessionConfiguration对类属性property(class)的思考
在查看NSURLSessionConfiguration的头文件时看到了如下的定义#if FOUNDATION_SWIFT_SDK_EPOCH_AT_LEAST(8)@property (class, readonly, strong) NSURLSessionConfiguration *defaultSessionConfiguration;@property (class, read原创 2016-12-13 18:01:16 · 2791 阅读 · 0 评论 -
ios _开头命名规范
在ios代码里,经常会看见用这种格式:_变量名 去命名一个变量,为什么? 其实又是个基础概念知识,但发现实际上好多人好像却并不明了其中原由,只是看好多人都这么写,也就这么写了,下面我就简单说一下这么做的原因。刚接触ios开发时,我写的代码一般是这样的@interface Person : NSObject@property (nonatomic,copy) NSString *原创 2016-12-06 19:13:51 · 514 阅读 · 0 评论 -
runtime应用一例
看到有人在论坛问:自己的应用已经开发完了,老板突然说想让应用中的button点击时要带震动效果。手机震动直接调用 AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);即可但是如果要把这句话一个一个的加到所有but的点击回调方法里,未免工作量太“大”了,而且也比较“笨”,我想了想,觉得利用runtime机制,可以比较好的解决这个问题原创 2016-12-05 21:12:21 · 618 阅读 · 0 评论 -
Realm的一些特性介绍
之前做ios开发,数据存储这块基本上用的都是sqllite,15年下半年在做一个产品时,因为时间比较宽裕,便决定在项目中尝试使用realm数据存储框架。之前在做技术调研时,了解到了很多它的优点,速度快、类似core data的机制、文档详尽、简单易用等。而整个项目下来,也确实感觉到了realm的不负众望,优点很多:开发效率得到了大大提高(省去了数据模型与表存储之间转化的很多工作);框架虽然推出不久,但功能覆盖已经趋于完备了,基本都满足了我的需求;有一个十分好用的可视化数据库查看工具;最终的运行表现也很让人满原创 2016-12-02 17:11:04 · 2045 阅读 · 0 评论 -
NSTimer与RunLoop
今天在论坛里看见有人提出这样一个问题:界面上有个scrollView 每次滑动的时候,NSTimer就停止了,为什么?看了下,下面的回复不少,但我感觉都没有真正解释清其中的问题,下面我来试着写一下我个人的理解(我基本上都是通过下面这篇文章学习的,有兴趣更深入、详细了解runloop的同学可以看看点击打开链接)首先,一个runloop下会包含很多个model,每个原创 2016-12-01 10:02:58 · 817 阅读 · 0 评论 -
iOS10 Callkit框架整合总结
前不久苹果推出的callkit framework简直就是voip类应用的福音啊,一下把应用的体验提升到了系统级别的高度,加上之前推出的pushkit,形成了一套完整的voip解决方案。正好我们的产品就是一个类voip应用,当然要把callkit加进去,不过callkit刚刚推出,网上的资料实在是少,甚至连官方的api文档里都是大片空白,下面记录一下我对整合callkit的一些总结与理解,也算丰富原创 2016-11-30 16:52:43 · 5694 阅读 · 0 评论 -
《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》读书笔记(下)
1.为避免在不经意间使用了无效对象,一般在release之后会清空指针,=nil;2.通常利用弱引用或者“手动”解除引用的方式破坏循环引用。3.ARC下,规定以alloc、new、copy、mutabelCopy开头方法,调用者要负责返回对象的释放;反之,返回的对象会自动释放,调用者要注意对返回值的保留。4.属性设置的正确流程:保留新值,释放旧值,更新变量。5.ARC下deallo原创 2017-04-06 10:44:46 · 637 阅读 · 0 评论