Objective-c 多线程操作 自定义NSOperation 模拟下载

写在前面使用多线程下载图片,使用内存缓存和磁盘缓存。这里只为理解NSOperation及其派生类真要应用到APP中 请下载成熟的第三方库效果下载多张图片时可控制线程并发数分析自定义NSOperation 执行下载操作封装一个队列操作,创建N个线程,队列控制并发通过线程tag查找对应图片通过队列tag查找对应队列缓存设置 内存缓存和磁盘缓存下载完成通过delegate或block进行回调通知代码通...
多线程

Objective-C MapKit的使用-LBS简单的租车主界面demo

效果分析三个view:地图view、车辆信息view、车辆类型选择view地图view:大头针的摆放,根据不同的种类显示大头针车辆信息view:根据当前点击的大头针显示对应的车辆信息车辆类型选择view:选择车辆类型交互分析选择车辆类型,地图上出现不同的大头针车辆信息view可滑动,滑动完成后地图定位到当前车辆的大头针上view的搭建车辆选择view:自定义slider 分段滑竿(上一篇文章提到...
mapKit LBS mapKit

Objective-C 的运行时中最具争议的黑魔法:method swizzling

Selector(typedef struct objc_selector *SEL):在运行时 Selectors 用来代表一个方法的名字。Selector 是一个在运行时被注册(或映射)的C类型字符串。Selector由编译器产生并且在当类被加载进内存时由运行时自动进行名字和实现的映射。Method(typedef struct objc_method *Method):方法是一个不透明的...
runtime method

Objective-C 自定义UISlider滑杆 分段样式

效果自定义一个功能简单的分段的滑杆 可显示分段名为了显示效果,我们将滑块和节点都设置为不规则这里只实现了分段的slider,未分段的没有实现,有兴趣的可以定义另一种类型做个判断修改下需求分析我们需要的是一个可分段slider主要元素有滑杆视图滑杆上的节点节点名称当前滑块由于要设定节点和滑块的frame,size又是可变的,最死脑细胞的就是滑块和节点frame的计算了!!!!代码部分查看UISli...
自定义UISlider

Objective-C AVPlayer播放视频的使用与封装

大致效果不要介意。界面有点丑。。。界面搭建看下成员变量就知道我怎么搭建的了,这里我将video播放层的size作为参照量,对所有控件的size按照其video的size宽高进行比例缩放@interface VideoPlayerView() @property (nonatomic,copy) NSString *path; //播放地址 自动判断文件路径和网址...
AVPlayer

Objective-C 使用核心动画CAAnimation实现动画

先来看看效果吧整个核心动画就不多做介绍了,随便一搜就能有很多很详细的解释,主要使用以下四种CABasicAnimation //经典动画 CAKeyframeAnimation //关键帧动画 CATransition //转场动画 CAAnimationGroup //组动画分析下本次demo的动画构成主要动画是对音频控...
动画CAAnimation

Builder Pattern 在 Objective-C 中的使用

在说 Builder Pattern 之前,我们先来看看一个场景。假设我们要预定一个 iPhone 6,要 64G 的,金色的,用代码表述大概是这样//PFX是一个前缀,因为直接写iPhone6不符合类名大写的习惯,写成IPhone6更是怪异╮(╯▽╰)╭ PFXiPhone6*iphone=[[PFXiPhone6alloc]init]; iphone.storage=64; iphone...
Objective-C Builder Pattern

Objective-C的Runtime

Objective-C语言是开源的,虽然现在Swift红红火火,但是Runtime是以前就容易被忽略的特性之一,所以在这个弥留之际,做一个总结还是有一些怀旧意义的首先Runtime的概念就是编译器会把编译和链接的逻辑尽可能的放在运行的时候运行,这样提升灵活性。Objective-C 的 Runtime 是一个运行时库(Runtime Library),它是一个主要使用 C 和汇编写的库,为 C 添...
Objective-C Runtime

Objective-C属性修饰符strong和copy的区别

strong和copy的区别问题描述在定义一个类的property时候,为property选择 strong 还是 copy 特别注意和研究明白的,如果property是NSString或者NSArray及其子类的时候,最好选择使用copy属性修饰。为什么呢?这是为了防止赋值给它的是可变的数据,如果可变的数据发生了变化,那么该property也会发生变化。代码示例还是结合代码来说明这个情况@int...
Objective-C 属性修饰符

Objective-C的陷阱与缺陷

Objective-C是一个强大而且非常有用的语言,但是同样也是有一点危险的。这次主题是受到一篇 有关C++陷阱 的文章启发,来聊聊Objective-C和Cocoa中的陷阱。简介我将和Horstmann使用同样的定义:陷阱是能够编译、链接、运行,但却不会按你所预期地去执行的代码。他提供了一个例子,这段代码在Objective-C中和在C++中同样都是有问题的:spanstyle=font-fam...
Objective-C