自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

转载 iOS 底层解析weak的实现原理(包含weak对象的初始化,引用,释放的分析)

很少有人知道weak表其实是一个hash(哈希)表,Key是所指对象的地址,Value是weak指针的地址数组。更多人的人只是知道weak是弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为nil。通常用于解决循环引用问题。但现在单知道这些已经不足以应对面试了,好多公司会问weak的原理。weak的原理是什么呢?下面就分析一下weak的工作原理(只是自己对这个问题好奇,学习过

2017-08-21 10:35:19 642

原创 iOS ARC MRC情况下重写setter getter方法

@interface People : NSObject  @property (nonatomic,retain) NSArray *oneArr;  @property (nonatomic,strong) NSArray *twoArr;  @end  @synthesize oneArr = _oneArr;  @synthesize twoArr = _twoArr;//同时写s

2016-09-22 14:21:50 683

转载 如何快速的开发一个完整的iOS直播app(播放篇)

前言在看这篇之前,如果您还不了解直播原理,请查看上篇文章如何快速的开发一个完整的iOS直播app(原理篇)开发一款直播app,集成ijkplayer成功后,就算完成直播功能一半的工程了,只要有拉流url,就能播放直播啦本篇主要讲解的是直播app中,需要用到的一个很重要的开源框架ijkplayer,然后集成这个框架可能对大多数初学者还是比较有难度的,所以本篇主要教你解决集成【

2016-09-20 15:58:55 1227

转载 如何快速的开发一个完整的iOS直播app(原理篇)

前言大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,整理了直播的原理,当前只是原理篇,后续会持续发布实战篇,教你从零开始搭建一个完整的iOS直播app,希望能帮助到更多的人更快的了解直播。如果喜欢我的文章,可以关注我微博:吖了个

2016-09-20 15:36:47 2222

转载 使用WKWebView替换UIWebView

开发App的过程中,常常会遇到在App内部加载网页,通常用UIWebView加载。这个自iOS2开始使用的网页加载器一直是开发的心病:加载速度慢,占用内存多,优化困难。如果加载网页多,还可能因为过量占用内存而给系统kill掉。各种优化的方法效果也不那么明显(点击查看常用优化方法)。iOS8以后,苹果推出了新框架Wekkit,提供了替换UIWebView的组件WKWebView。各种

2016-09-20 14:45:36 480

转载 iOS10适配之通知(UserNotification)

iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifications.framework 来集中管理和使用 iOS 系统中通知的功能。在此基础上,Apple 还增加了撤回单条通知,更新已展示通知,中途修改通知内容,在通知中展示图片视频,自定义通知 UI 等一系列新功能,非常强大。对于开发者来说,相较于之前版本,iOS 10 提供了一套

2016-09-20 14:38:48 6456

转载 iOS10适配汇总

距离 iPhone 横空出世已经过去了 9 个年头,iOS 的版本号也跨入了两位数。在我们回顾过去四五年 iOS 系统的发展的时候,不免感叹变化速度之快,迭代周期之短。iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 里的分屏多任务特性等等。Apple 近年都是在 WWDC 发布新的系统和软件,然后在秋季和

2016-09-20 14:22:35 3387

转载 关于 iOS 10 中 ATS 的问题

WWDC 15 提出的 ATS (App Transport Security) 是 Apple 在推进网络通讯安全的一个重要方式。在 iOS 9 和 OS X 10.11 中,默认情况下非 HTTPS 的网络访问是被禁止的。当然,因为这样的推进影响面非常广,作为缓冲,我们可以在 Info.plist 中添加NSAppTransportSecurity 字典并且将 NSAllowsArbitr

2016-09-20 13:56:57 547

转载 iTunes Connect程序被拒,如何申诉?

转自:http://blog.csdn.net/xiaohei5188/article/details/14054657方法一:苹果审查委员会申诉的地址:http://developer.apple.com/appstore/contact/appreviewboard/,最好是用英文写,理由原因列明,有其他相同的app通过了审核也要说明,语气最好诚恳但又必须坚

2016-02-02 14:46:53 1220

原创 objective-c 中随机数的用法 (rand()、arc4random() 、random()、CCRANDOM_0_1() )

1、随机数的使用  1)、arc4random() 比较精确不需要生成随即种子      使用方法 :                通过arc4random() 获取0到x-1之间的整数的代码如下:                 int value = arc4random() % x;                  获取1到x之间的整数的代码如下:     

2016-02-02 14:43:58 924

原创 __attribute__ 详解  //定义编译器宏

GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function     Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__att

2016-02-02 14:40:19 1660

原创 Objective-C中的Block

1.相关概念在这篇笔记开始之前,我们需要对以下概念有所了解。1.1 操作系统中的栈和堆注:这里所说的堆和栈与数据结构中的堆和栈不是一回事。我们先来看看一个由C/C++/OBJC编译的程序占用内存分布的结构: 栈区(stack):由系统自动分配,一般存放函数参数值、局部变量的值等。由编译器自动创建与释放。其操作方式类似于数据结构中的栈,即后进先出、先进

2016-01-14 10:22:26 314

转载 iOS故障排除指南:基本技巧

本文为《iOS故障排除指南:基本技巧》。通过阅读本文,相信大家会对当前最重要的iOS应用程序调试方案以及如何利用最短时间搞定问题拥有更加深刻的理解。我们的目的是尽可能缩短花费在bug修复身上的时间,并把节省下来的精力与资源投入真正重要的应用开发工作中。【2013年1月16日 51CTO外电头条】本文为《iOS故障排除指南:基本技巧》。在iOS程序的数组中的三个对象莫名其妙成了五个、新开

2016-01-13 17:13:30 442

原创 UIActionSheet,UIAlertView,UISlider,UIProgressView,UISwitch,UISegmentControl,UIActivityIndicatorView基

一、UIActionSheet 行动表UIActionSheet 用来对指定的事件向用户呈现一系列的操作;也可以用来提示用户确认有些带有危险性的操作;ActionSheet包含一个可选的标题和一个或多个按钮,其中每一个对应于要执行的操作1、声明代理2、初始化加载 // 简单初始化显示    UI

2016-01-13 16:43:31 550

原创 iOS开发之键盘类型UIKeyboardType

UIKeyboardTypeDefault:UIKeyboardTypeASCIICapable:UIKeyboardTypeNumbersAndPunctuation:UIKeyboardTypeURL:UIKeyboardTypeNumberPad:UIKeyboardTypePhonePad:UIKeyboardType

2016-01-13 16:28:27 405

原创 layoutSubviews和setNeedsLayOut,drawRect和setNeedsDisplay

ios layout机制相关方法- (CGSize)sizeThatFits:(CGSize)size- (void)sizeToFit——————-- (void)layoutSubviews- (void)layoutIfNeeded- (void)setNeedsLayout——————–- (void)setNeedsDi

2016-01-13 16:22:45 392

转载 在 iOS 中获取唯一标识符(UDID/UUID)

Get unique identifer in iOS 7在 iOS 5 中, 可以获取到系统的 UDID(Unique Device Identifier) ,后来被 Apple 禁止掉了。于是,在 iOS 6 中,大家开始使用 MAC 地址 MAC(Medium/Media Access Control) ,后来又被 Apple 禁止掉了。同样的,OpenUDID 也不能用了:

2016-01-13 16:14:01 856

原创 NSPredicate iOS中非常强大的过滤器

在APPLE的官方Demo:UICatalog中实现UISearchBar模糊搜索功能是这么做的:1 - (void)viewDidLoad {2 [super viewDidLoad];3 4 self.allResults = @[@"Here's", @"to", @"the", @"crazy", @"ones.", @"The", @"misfits."

2016-01-13 16:05:58 553

原创 Certificate、Provisioning Profile、App ID的介绍及其之间的关系

1.概念介绍如果你拥有一个开发者账户的话,在iOS Dev Center打开Certificates, Indentifiers & Profiles,你就可以看到如下的列表:Profile Portal改版有一段时间了,改版之后的结构比以前更清晰明了,易于理解和管理。上面的列表就包含了开发、调试和发布iOS应用程序所需的所有内容:Certificates、

2016-01-12 17:47:36 355

原创 iOS缓存方案

App已经与我们形影不离了,不管在地铁上、公交上还是在会场你总能看到很多人拿出来手机,刷一刷微博,看看新闻。据不完全统计有近一半的用户在非Wifi环境打开App,以下为一个典型iPhone和Android App(50W+用户)的友盟后台数据:3G、2G的数据连接往往不稳定(特别在公交或者地铁上),这时打开一些App就会像这样:当然也会有一些

2016-01-11 17:21:55 535

原创 UIWebView和网页交互的研究初探

很多时候,我们使用UIWebView不是简单的显示一个网页这么简单的,我们需要更多的交互工作,譬如能否通过Objective-C的代码来控 制网页的显示内容,能否监控网页上的点击事件等等,这里我是根据网上的资料做的演示,因此会有很多和网络已有的资料相同的地方。此外,关于UIWebView的基本使用方面,请看我的另外一篇文章iOS5编程--官方例子代码的研究--2.UICatalog-6

2016-01-11 17:21:14 274

原创 iOS 学习资料整理

这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的目前所处的位置.该文档会持续更新, 同时也欢迎更多具有丰富经验的 iOS 开发者将自己的常用的一些工具, 学习资料, 学习心得等分享上来, 我将定期筛选合并, 文档尚有一些不完善之处, 也请不

2016-01-11 16:24:44 495

原创 CocoaPods一个Objective-C第三方库的管理利器

介绍:开发应用的时候第三方的库是不可缺少的,能提高开发的效率。 一些经常用到的库,在新的项目里用是,你又得手工的Add到项目里,用的到库多起来了,就不方便管理了。发现CocoaPods这个软件,可以帮你管理Xcode里的第三方的库,很方便。那怎么用呢?先安装CocoaPods。1、CocoaPods是跑在Ruby的软件,安装可能需要几分钟,安装命名:sudo gem ins

2016-01-11 16:19:21 265

原创 CocoaPods安装和使用教程

CocoaPods是什么?当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新

2016-01-11 16:17:53 207

转载 分享!分享!分享!网易新闻iOS版使用的18个开源组件

网易新闻iOS版在开发过程中曾经使用过的第三方开源类库、组件1、AFNetworkingAFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人都用它取代 ASIHTTPRequest2、Apple Reachability网络监测,可以参考下这篇文章iOS

2016-01-11 16:13:50 893

原创 UICollectionView简单使用

首先认识一下UICollectionViewNS_CLASS_AVAILABLE_IOS(6_0) @interface UICollectionView : UIScrollView  UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITa

2016-01-11 16:07:55 234

原创 UICollectionView之定制UICollectionViewLayout

这是博主的WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里。如果您是首次来到本站,也许您会有兴趣通过RSS,或者通过页面左侧的邮件订阅的方式订阅本站。在上一篇UICollectionView的入门介绍中,大概地对iOS6新加入的强大的UICollectionView进行了一些说明。在这篇博文中,将结合WWDC2012 Session219:Advanced Collec

2016-01-11 16:06:31 527

原创 UICollectionView详解

什么是UICollectionViewUICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是 UICollectionView的最最简单的形式)。如果你用过iBooks的话,可能你还对书架布局有一定印象:一个虚拟书架上放着你下载和购买的各 类图书,整齐排列。其实这就是一个UICollectionView的表现形式,或者

2016-01-11 16:03:14 209

原创 UICollectionView高级使用示例之CircleLayout

CircleLayout继承自UICollectionViewLayout,在这里先简单介绍一下UICollectionViewLayoutUICollectionViewLayout类是一个抽象基类,通过继承它以生成collection view的layout信息。layout对象的职责就是决定collection view中cells,supplementary views和decor

2016-01-11 16:02:02 438

原创 iOS多线程的初步研究(十)-- dispatch同步

GCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。一、dispatch组(dispatch group)1. 创建dispatch组dispatch_group_t group = dispatch_group_create(); 2. 启动dispatch队列中的block关联到group中dispatch_group_async(group,

2016-01-11 10:37:11 263

原创 iOS多线程的初步研究(九)— dispatch源

dispatch源(dispatch source)和RunLoop源概念上有些类似的地方,而且使用起来更简单。要很好地理解dispatch源,其实把它看成一种特别的生产消费模式。 dispatch源好比生产的数据,当有新数据时,会自动在dispatch指定的队列(即消费队列)上运行相应地block,生产和消费同步是 dispatch源会自动管理的。dispatch源的使用基本为以下步

2016-01-11 10:36:28 269

原创 iOS多线程的初步研究(八)-- dispatch队列

GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实 现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。 dispatch队列的生成可以有这几种方式:1. dispatch_queue_t queue = dispatc

2016-01-11 10:35:48 212

原创 iOS多线程的初步研究(七)-- dispatch对象

谈起iOS的dispatch(正式称谓是Grand Central Dispatch或GCD),不得不说这又是iOS(包括MacOSX)平台的创新,优缺点这里不讨论,只有当你使用时才能真正体会到。我们说dispatch函数的主要目的是实现多任务并发代码,那么要理解dispatch函数,先来了解dispatch对象的定义。 dispatch对象类型的部分定义,主要使用C语言的宏定义:

2016-01-11 10:34:47 211

原创 iOS多线程的初步研究(六)-- NSOperation

iOS平台提供更高级的并发(异步)调用接口,让你可以集中精力去设计需完成的任务代码,避免去写与程序逻辑无关的线程生成、运行等管理代码。当然实质上是这些接口隐含生成线程和管理线程的运行,从而更加简洁地实现多线程。下面先来研究NSOperation和NSOperationQueue类的使用。NSOperation实质是封装了需要并发运行的代码,一些主要接口和NSThread基本相同,可以看做没

2016-01-11 10:33:59 170

原创 iOS多线程的初步研究(五)-- 如何让NSURLConnection在子线程中运行

可以有两个办法让NSURLConnection在子线程中运行,即将NSURLConnection加入到run loop或者NSOperationQueue中去运行。前面提到可以将NSTimer手动加入NSRunLoop,Cocoa库也为其它一些类提供了可以手动加入NSRunLoop的方法,这些类有 NSPort、NSStream、NSURLConnection、NSNetServices,

2016-01-11 10:33:20 215

原创 iOS多线程的初步研究(四)-- NSTimer

理解run loop后,才能彻底理解NSTimer的实现原理,也就是说NSTimer实际上依赖run loop实现的。先看看NSTimer的两个常用方法:+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInf

2016-01-11 10:32:40 200

原创 iOS多线程的初步研究(二)-- 锁

谈到线程同步,一般指如何对线程间共享数据的同步读写,如何避免混乱的读写结果。一个基本的解决办法就是使用锁(LOCK)。iOS提供多种同步锁的类和方法,这里介绍下基本用法。1. NSLock:最基本的同步锁,使用lock来获得锁,unlock释放锁。如果其它线程已经使用 lock,这时lock方法会阻塞当前线程,直到其它线程调用unlock释放锁为止。NSLock锁一般用于简

2016-01-11 10:22:01 340

原创 iOS多线程的初步研究(一)-- NSThread

对于多线程的开发,iOS系统提供了多种不同的接口,先谈谈iOS多线程最基础方面的使用。产生线程的方式姑且分两类,一类是显式调用,另一类是隐式调用。一、显示调用的类为NSThread。一般构造NSThread的线程对象可通过两种方式:1. 初始化线程主方法:[NSThread detachNewThreadSelector:@selector(run:) toTarget:targe

2016-01-11 10:18:28 233

原创 图形库Core Plot

一.前言Core Plot和s7Graph都是可在iOS平台下使用的开源矢量图形库,s7Graph功能相对比较简单一些,在此就不介绍了。Core Plot 功能强大很多,我们可以利用它很方便地画出复杂的曲线图、柱状图和饼图等等。下面我先来介绍如何在项目中配置使用 Core Plot 库,然后通过一个曲线图示例来演示如何使用它,最后结合示例介绍 Core Plot 的框架结构。本文源代码

2016-01-08 15:57:55 426

原创 Masonry布局框架的使用

Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性。比我们使用自动布局,繁琐的约束条件,好用多了。下面我们来学学masonry的使用方法。 首先我们要下载Masonry源码。源码地址如下:https://github.com/Masonry/Masonry将源码下载下来后,可以直接编译过使用的。

2016-01-08 15:54:17 309

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除