Objective-C
文章平均质量分 84
RuiWang321
。。。。。。
展开
-
深入理解RunLoop
RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。RunLoop 的概念一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制转载 2015-12-28 15:58:27 · 564 阅读 · 0 评论 -
iOS中的触摸事件
iOS中的事件:在用户使用app过程中,会产生各种各样的事件。iOS中的事件可以分为3大类型: view的触摸事件处理:响应者对象:在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。UIApplication、UIViewController、UIView都继承自UIRespon转载 2016-01-30 12:44:52 · 630 阅读 · 0 评论 -
apps被拒绝的各种理由以及翻译
1. Terms and conditions(法律与条款)1.1 As a developer of applications for the App Store you are bound by the terms of the Program License Agreement (PLA), Human Interface Guidelines (HIG), and转载 2016-02-20 17:28:32 · 1614 阅读 · 0 评论 -
侧滑抽屉MMDrawerController自定义侧滑手势
侧滑抽屉 https://github.com/mutualmobile/MMDrawerController#features 这个是github上的一个开源侧滑框架,拥有自定义侧滑手势功能。但官方的文档只介绍了如何使用。没介绍如何自定义手势。使用MMDrawerController来实现菜单滑动效果。要求是每个一级页面是可以滑动的,二级页面是不允许滑动的。那就需要自定义侧滑手势了。// 自定原创 2016-04-01 10:51:00 · 1739 阅读 · 0 评论 -
Runtime的实践——给一个类添加属性(关联对象)
相关文章: 《Runtime的初步认识——结构体与类》 《Runtime的初步认识——消息机制》一提到给一个类添加点什么,我们有可能首先就想到类别(Category)。那么我们就弄一下。利用 Category 给现有的类添加属性比如我们要给一个 NSArray 添加一个属性叫做NSString *name。我们首先新建一个Objective-C文件。File: NameFile Type:Cat原创 2016-05-11 09:33:55 · 3979 阅读 · 8 评论 -
Runtime的初步认识——消息机制
之前写过一篇《Runtime的初步认识》,读过的小伙伴们应该对OC中的类与C中的结构体的关系有了一定的了解。这篇文章就先介绍一下OC中的方法是如何“调用”的。这就是OC的另一个机制——消息机制。OC 的消息机制是指,在外部需要执行某个对象的方法时,使用的方式是“发送消息”而不是“调用”。在学 Runtime 之前你绝对不理解为什么是发送消息而不是调用。“调用”时确定的,而最终要执行哪段代码是不确定原创 2016-05-09 11:42:00 · 1943 阅读 · 0 评论 -
Runtime的实践——方法交换
读过《Runtime的初步认识——结构体与类》的小伙伴们应该对objc_class结构体的构造有所了解了struct objc_class { Class isa OBJC_ISA_AVAILABILITY;#if !__OBJC2__ Class super_class OBJC2_UNAVAILAB原创 2016-05-12 13:05:05 · 3932 阅读 · 0 评论 -
Runtime的初步认识——结构体与类
Runtime的初步认识Runtime的初步认识Runtime介绍类与结构体的关系结构体解析结构体的作用纠正Runtime介绍学习一个东西至少要先知道它是个啥,你一定听说过“运行时是 Objective-C 的一个特色”,这里的“运行时”就是指 runtime 了。runtime是在自 iOS 平台开放并基于 Objective-C 语言开发后的一个编程语言上的高级技术。学习runtime原创 2016-05-08 12:33:55 · 2545 阅读 · 0 评论 -
超全!整理常用的iOS第三方资源
一:第三方插件1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com/jdg/MBProgressHUD3:XML/HTML解析地址:https://github.com/topfu原创 2016-01-27 08:46:40 · 10075 阅读 · 1 评论 -
iOS清除缓存(OC实现)
//清除缓存按钮的点击事件- (void)putBufferBtnClicked:(UIButton *)btn{ CGFloat size = [self folderSizeAtPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject] + [sel原创 2016-01-30 12:11:17 · 10094 阅读 · 6 评论 -
iOS 字符属性NSAttributedString描述
字符属性 字符属性可以应用于 attributed string 的文本中。 NSString *const NSFontAttributeName;(字体) NSString *const NSParagraphStyleAttributeName;(段落) NSString *const NSForegroundColorAttributeName;(字体颜色)转载 2016-01-30 12:02:33 · 587 阅读 · 0 评论 -
掌握设计模式
为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置;而自己将代码改了又改,删了又建,几乎晕厥,最后只能推翻重来。为什么大牛写完的程序测试上线后,几乎完美运行,用户无懈可击;而自己的程序bug重重,改好一个却又引出另一个,按下葫芦浮起瓢,几近崩溃。原创 2015-12-15 23:40:00 · 483 阅读 · 0 评论 -
Objective-C中的内存管理
在编程语言中是少不了对内存的管理的,内存对于计算机来说是宝贵的资源,所以对使用不到的资源进行回收是很有必要的。OC中使用引用计数和垃圾回收来管理内存,在OC中为每个对象分配一个引用计数器,当对象刚刚被创建时其初始值为1,当有某段代码需要访问一个对象是时,会将该对象的引用计数器加1(通过retain来实现);当访问一个对象结束时,会将该对象的引用计数器减1(通过release来实现);当计数器为0时原创 2015-12-15 23:25:39 · 506 阅读 · 0 评论 -
Objective-C中的属性和实例变量
首先、引用一篇关于@property与@synthesize的老文。交代一下这两个属性的由来、便于下文理解—————————————————————————————————————— 当你定义了一系列的变量时,需要写很多的getter和setter方法,而且它们的形式都是差不多的,,所以Xcode提供了@property和@synthesize属性,@property转载 2015-12-23 15:07:38 · 809 阅读 · 0 评论 -
类别(Categories)和扩展/匿名类别(extensions)及其延伸使用
类别(Category) 分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。 此外,类别能够保证你的实现类和其他的文件区分开。 1 #import “UIViewController.h”2 @interface UIViewController(CustomView)3 -(void)extMeth转载 2015-12-23 15:09:39 · 620 阅读 · 0 评论 -
Objective-C与JavaScript交互的那些事
最近公司的运营瞎搞了个活动,其活动要服务端提供数据支持,web前端在微信公众账号内作为主要的运营阵地,而iOS、Android要提供相应的入口及页面进行配合。一个活动,动用了各个端的程序猿。而在这里面技术方面主要就是涉及到web端和服务端的交互,web前端和iOS、Android的交互。本人作为一个iOS开发者,今天就聊聊web、iOS、Android三端的交互,其实在说明白一点就是方法的互相调用转载 2016-01-27 22:00:10 · 1078 阅读 · 1 评论 -
iOS与JS交互实战篇(ObjC版)
前言ObjectiveC与Js交互是常见的需求,可对于新手或者所谓的高手而言,其实并不是那么简单明了。这里只介绍iOS7.0后出来的JavaScriptCore framework。关于JavaScriptCore本教程中所涉及到的几种类型:JSContext, JSContext是代表JS的执行环境,通过-evaluateScript:方法就可以执行一JS代码转载 2016-01-27 22:02:01 · 1862 阅读 · 0 评论 -
说说objcRuntime的一些妙用(class_addMethod,class_replaceMethod)
前言:陈列一下今天要讲的知识点:class_addMethod,class_replaceMethod,method_getImplementation,object_getClass涉及到的知识》》使用category,通过Runtime实现用自己的函数调换掉原生函数》》oc的message forwarding》》使用Runtime为类添加原来没有的方法原创 2016-01-27 22:06:57 · 2418 阅读 · 0 评论 -
Obj-C与javascript交互之WebViewJavascriptBridge
webview与js交互方式,调用js方法要在Obj-C中写js代码,这种方式非常臃肿,耦合性强。 WebViewJavascriptBridge框架就完美解决了webview的这缺点。 WebViewJavascriptBridge的原理也是通过webview的stringByEvaluatingJavaScriptFromString:方法调用JavaScript代码;JavaS转载 2016-01-27 22:24:53 · 586 阅读 · 0 评论 -
点击ImageView放大到全屏
ImageZoomView.h@interface ImageZoomView : UIImageView { CGRect initFrame;}/** * 添加imageView点击放大功能 * * @param imageView 图片视图对象 */+ (void)zoomImageWhenTap:(UIImageView *)imageView;@endImag原创 2016-08-24 09:21:30 · 4321 阅读 · 0 评论