
IOS
文章平均质量分 81
x新光灿烂x
IOS 平台开发, JAVA 后台开发
展开
-
IOS storyboard之 prepareForSegue:sender:方法的使用
在 谈到storyboard时,我们多次强调, storyboard 解决的是页面之间的跳转问题。 一个颇为复杂的页面跳转,一旦使用了storyboard,就会四两拨千斤。你只需简单地拖拽,即可完成UIViewController 之间的跳转。 这里面有个神器,一个极为重要的method,它就是: prepareForSegue:sender:从method 简略的表达式,原创 2015-01-30 16:37:10 · 645 阅读 · 0 评论 -
iOS多线程的初步研究(二)-- 锁
谈到线程同步,一般指如何对线程间共享数据的同步读写,如何避免混乱的读写结果。一个基本的解决办法就是使用锁(LOCK)。iOS提供多种同步锁的类和方法,这里介绍下基本用法。1. NSLock:最基本的同步锁,使用lock来获得锁,unlock释放锁。如果其它线程已经使用 lock,这时lock方法会阻塞当前线程,直到其它线程调用unlock释放锁为止。NSLock锁一般用于简原创 2016-01-11 10:22:01 · 356 阅读 · 0 评论 -
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 · 223 阅读 · 0 评论 -
iOS多线程的初步研究(六)-- NSOperation
iOS平台提供更高级的并发(异步)调用接口,让你可以集中精力去设计需完成的任务代码,避免去写与程序逻辑无关的线程生成、运行等管理代码。当然实质上是这些接口隐含生成线程和管理线程的运行,从而更加简洁地实现多线程。下面先来研究NSOperation和NSOperationQueue类的使用。NSOperation实质是封装了需要并发运行的代码,一些主要接口和NSThread基本相同,可以看做没原创 2016-01-11 10:33:59 · 197 阅读 · 0 评论 -
iOS多线程的初步研究(八)-- dispatch队列
GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实 现的GCD,把函数闭包(Closure)的特性发挥得淋漓尽致。 dispatch队列的生成可以有这几种方式:1. dispatch_queue_t queue = dispatc原创 2016-01-11 10:35:48 · 255 阅读 · 0 评论 -
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 · 291 阅读 · 0 评论 -
UICollectionView高级使用示例之CircleLayout
CircleLayout继承自UICollectionViewLayout,在这里先简单介绍一下UICollectionViewLayoutUICollectionViewLayout类是一个抽象基类,通过继承它以生成collection view的layout信息。layout对象的职责就是决定collection view中cells,supplementary views和decor原创 2016-01-11 16:02:02 · 473 阅读 · 0 评论 -
UICollectionView详解
什么是UICollectionViewUICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是 UICollectionView的最最简单的形式)。如果你用过iBooks的话,可能你还对书架布局有一定印象:一个虚拟书架上放着你下载和购买的各 类图书,整齐排列。其实这就是一个UICollectionView的表现形式,或者原创 2016-01-11 16:03:14 · 252 阅读 · 0 评论 -
UICollectionView之定制UICollectionViewLayout
这是博主的WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里。如果您是首次来到本站,也许您会有兴趣通过RSS,或者通过页面左侧的邮件订阅的方式订阅本站。在上一篇UICollectionView的入门介绍中,大概地对iOS6新加入的强大的UICollectionView进行了一些说明。在这篇博文中,将结合WWDC2012 Session219:Advanced Collec原创 2016-01-11 16:06:31 · 579 阅读 · 0 评论 -
iOS多线程的初步研究(一)-- NSThread
对于多线程的开发,iOS系统提供了多种不同的接口,先谈谈iOS多线程最基础方面的使用。产生线程的方式姑且分两类,一类是显式调用,另一类是隐式调用。一、显示调用的类为NSThread。一般构造NSThread的线程对象可通过两种方式:1. 初始化线程主方法:[NSThread detachNewThreadSelector:@selector(run:) toTarget:targe原创 2016-01-11 10:18:28 · 258 阅读 · 0 评论 -
图形库Core Plot
一.前言Core Plot和s7Graph都是可在iOS平台下使用的开源矢量图形库,s7Graph功能相对比较简单一些,在此就不介绍了。Core Plot 功能强大很多,我们可以利用它很方便地画出复杂的曲线图、柱状图和饼图等等。下面我先来介绍如何在项目中配置使用 Core Plot 库,然后通过一个曲线图示例来演示如何使用它,最后结合示例介绍 Core Plot 的框架结构。本文源代码原创 2016-01-08 15:57:55 · 472 阅读 · 0 评论 -
Masonry布局框架的使用
Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性。比我们使用自动布局,繁琐的约束条件,好用多了。下面我们来学学masonry的使用方法。 首先我们要下载Masonry源码。源码地址如下:https://github.com/Masonry/Masonry将源码下载下来后,可以直接编译过使用的。原创 2016-01-08 15:54:17 · 334 阅读 · 0 评论 -
iOS的socket开发基础
详细介绍了iOS的socket开发,说明了tcp和udp的区别,接单说明了tcp的三次握手四次挥手,用c语言分别实现了TCPsocket和UDPsocket的客户端和服务端,本文的作用是让我们了解socket的一些原理以及底层基本的结构。socket udp tcp iOS 三次握手四次挥手目录[-]socket简介tcp和udp的区别TCP三次握手和四次挥手T转载 2015-01-30 17:15:32 · 314 阅读 · 0 评论 -
iOS事件拦截(实现触摸任意位置隐藏指定view)
项目里有一个需求,类似新浪或者腾讯微博的顶部title栏的类别选择器的消失(在选择器展开的时候,触摸屏幕任何地方使其消失)。最开始的想法是当这个选择器(selectorView)展开的时候,在当前屏幕上加入一个铺满整个屏幕的透明button来拦截所有的触摸事件。可是这个方案实现起来非常麻烦,也不优雅,而且发现button拦截不到scrollView的滑动事件,所以决定放弃。后来经过原创 2016-01-06 13:38:31 · 1647 阅读 · 0 评论 -
iOS 打印日志显示系统详细时间,类名,行号及打印值
Q:如何打印当前的函数和行号?A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号。如:1NSLog(@"%s:%d obj=%@", __func__, __LINE__, obj);其中__func__和__LINE__都是预编译的宏,编译时会分别替换为当前函数和当前行号转载 2016-01-08 10:25:26 · 911 阅读 · 0 评论 -
Xcode描述文件路径
~/Library/MobileDevice/Provisioning\ Profiles原创 2016-01-08 14:14:16 · 4327 阅读 · 0 评论 -
IOS调试lldb命令常用,po, Xcode控制台调试
lldb命令常用(备忘)假如你准备在模拟器里面运行这个,你可以在“(lldb)”提示的后面输入下面的:(lldb) po $eaxLLDB在xcode4.3或者之后的版本里面是默 认的调试器。假如你正在使用老一点版本的xcode的话,你又GDB调试器。他们有一些基本的相同的命令,因此假如你的xcode使用的是“(gdb)” 提示,而不是“(lldb)”提示的话,你也能够更随一起原创 2016-01-08 14:34:01 · 2295 阅读 · 0 评论 -
iOS中打印日志显示系统详细时间,类名,行号及打印值
Q:如何打印当前的函数和行号?A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号。如:1NSLog(@"%s:%d obj=%@", __func__, __LINE__, obj);其中__func__和__LINE__都是预编译的宏,编译时会分别替换为当前函数和当前行号原创 2016-01-08 14:35:52 · 2357 阅读 · 0 评论 -
iOS事件拦截(实现触摸任意位置隐藏指定view)
iOS事件机制的资料,sendEvent函数的介绍如下:sendEvent:Dispatches an event to the appropriate responder objects in the application.- (void)sendEvent:(UIEvent *)eventParameterseventA UIEvent object原创 2016-01-08 15:33:14 · 546 阅读 · 0 评论 -
Masonry的使用 ---关于AutoLayout的框架
因为之前做过 Android开发,Android的有种布局方式叫做RelativeLayout,使用起来非常灵活。2011年开始接触iOS的时候,发现这种基于 坐标的绝对布局方式非常不灵活,所以还是按照Android的RelativeLayout的思想进行,控件的坐标均采用相对布局的关系,比如要实现这个 布局: 使用相对布局思想如下(比较麻烦的地方是需原创 2016-01-08 15:53:04 · 303 阅读 · 0 评论 -
UICollectionView简单使用
首先认识一下UICollectionViewNS_CLASS_AVAILABLE_IOS(6_0) @interface UICollectionView : UIScrollView UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITa原创 2016-01-11 16:07:55 · 267 阅读 · 0 评论 -
分享!分享!分享!网易新闻iOS版使用的18个开源组件
网易新闻iOS版在开发过程中曾经使用过的第三方开源类库、组件1、AFNetworkingAFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人都用它取代 ASIHTTPRequest2、Apple Reachability网络监测,可以参考下这篇文章iOS转载 2016-01-11 16:13:50 · 914 阅读 · 0 评论 -
Certificate、Provisioning Profile、App ID的介绍及其之间的关系
1.概念介绍如果你拥有一个开发者账户的话,在iOS Dev Center打开Certificates, Indentifiers & Profiles,你就可以看到如下的列表:Profile Portal改版有一段时间了,改版之后的结构比以前更清晰明了,易于理解和管理。上面的列表就包含了开发、调试和发布iOS应用程序所需的所有内容:Certificates、原创 2016-01-12 17:47:36 · 392 阅读 · 0 评论 -
__attribute__ 详解 //定义编译器宏
GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__att原创 2016-02-02 14:40:19 · 1882 阅读 · 0 评论 -
iOS故障排除指南:基本技巧
本文为《iOS故障排除指南:基本技巧》。通过阅读本文,相信大家会对当前最重要的iOS应用程序调试方案以及如何利用最短时间搞定问题拥有更加深刻的理解。我们的目的是尽可能缩短花费在bug修复身上的时间,并把节省下来的精力与资源投入真正重要的应用开发工作中。【2013年1月16日 51CTO外电头条】本文为《iOS故障排除指南:基本技巧》。在iOS程序的数组中的三个对象莫名其妙成了五个、新开转载 2016-01-13 17:13:30 · 486 阅读 · 0 评论 -
iOS10适配汇总
距离 iPhone 横空出世已经过去了 9 个年头,iOS 的版本号也跨入了两位数。在我们回顾过去四五年 iOS 系统的发展的时候,不免感叹变化速度之快,迭代周期之短。iOS 7 翻天覆地的全新设计,iOS 8 中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,iOS 9 里的分屏多任务特性等等。Apple 近年都是在 WWDC 发布新的系统和软件,然后在秋季和转载 2016-09-20 14:22:35 · 3466 阅读 · 0 评论 -
iOS10适配之通知(UserNotification)
iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifications.framework 来集中管理和使用 iOS 系统中通知的功能。在此基础上,Apple 还增加了撤回单条通知,更新已展示通知,中途修改通知内容,在通知中展示图片视频,自定义通知 UI 等一系列新功能,非常强大。对于开发者来说,相较于之前版本,iOS 10 提供了一套转载 2016-09-20 14:38:48 · 6521 阅读 · 0 评论 -
使用WKWebView替换UIWebView
开发App的过程中,常常会遇到在App内部加载网页,通常用UIWebView加载。这个自iOS2开始使用的网页加载器一直是开发的心病:加载速度慢,占用内存多,优化困难。如果加载网页多,还可能因为过量占用内存而给系统kill掉。各种优化的方法效果也不那么明显(点击查看常用优化方法)。iOS8以后,苹果推出了新框架Wekkit,提供了替换UIWebView的组件WKWebView。各种转载 2016-09-20 14:45:36 · 535 阅读 · 0 评论 -
如何快速的开发一个完整的iOS直播app(播放篇)
前言在看这篇之前,如果您还不了解直播原理,请查看上篇文章如何快速的开发一个完整的iOS直播app(原理篇)开发一款直播app,集成ijkplayer成功后,就算完成直播功能一半的工程了,只要有拉流url,就能播放直播啦本篇主要讲解的是直播app中,需要用到的一个很重要的开源框架ijkplayer,然后集成这个框架可能对大多数初学者还是比较有难度的,所以本篇主要教你解决集成【转载 2016-09-20 15:58:55 · 1270 阅读 · 0 评论 -
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 · 712 阅读 · 0 评论 -
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 · 691 阅读 · 0 评论 -
在 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 · 945 阅读 · 0 评论 -
iOS开发之键盘类型UIKeyboardType
UIKeyboardTypeDefault:UIKeyboardTypeASCIICapable:UIKeyboardTypeNumbersAndPunctuation:UIKeyboardTypeURL:UIKeyboardTypeNumberPad:UIKeyboardTypePhonePad:UIKeyboardType原创 2016-01-13 16:28:27 · 436 阅读 · 0 评论 -
iOS 学习资料整理
这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的目前所处的位置.该文档会持续更新, 同时也欢迎更多具有丰富经验的 iOS 开发者将自己的常用的一些工具, 学习资料, 学习心得等分享上来, 我将定期筛选合并, 文档尚有一些不完善之处, 也请不原创 2016-01-11 16:24:44 · 559 阅读 · 0 评论 -
UIWebView和网页交互的研究初探
很多时候,我们使用UIWebView不是简单的显示一个网页这么简单的,我们需要更多的交互工作,譬如能否通过Objective-C的代码来控 制网页的显示内容,能否监控网页上的点击事件等等,这里我是根据网上的资料做的演示,因此会有很多和网络已有的资料相同的地方。此外,关于UIWebView的基本使用方面,请看我的另外一篇文章iOS5编程--官方例子代码的研究--2.UICatalog-6原创 2016-01-11 17:21:14 · 307 阅读 · 0 评论 -
iOS缓存方案
App已经与我们形影不离了,不管在地铁上、公交上还是在会场你总能看到很多人拿出来手机,刷一刷微博,看看新闻。据不完全统计有近一半的用户在非Wifi环境打开App,以下为一个典型iPhone和Android App(50W+用户)的友盟后台数据:3G、2G的数据连接往往不稳定(特别在公交或者地铁上),这时打开一些App就会像这样:当然也会有一些原创 2016-01-11 17:21:55 · 569 阅读 · 0 评论 -
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 · 424 阅读 · 0 评论 -
关于 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 · 579 阅读 · 0 评论 -
如何快速的开发一个完整的iOS直播app(原理篇)
前言大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,整理了直播的原理,当前只是原理篇,后续会持续发布实战篇,教你从零开始搭建一个完整的iOS直播app,希望能帮助到更多的人更快的了解直播。如果喜欢我的文章,可以关注我微博:吖了个转载 2016-09-20 15:36:47 · 2267 阅读 · 0 评论 -
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 · 979 阅读 · 0 评论