IOS、XCode、Objective C
bsplover
热爱音视频编解码、网络编程
展开
-
presentedViewController 和 presentingViewController 以及 dismissViewControllerAnimated 的使用
在日常的开发中,多控制器之间的跳转除了使用push的方式,还可以使用 present的方式,present控制器时,就避免不了使用 presentedViewController、presentingViewController ,这两个概念容易混淆,简单介绍一下。1:present 控制器的使用 使用present的方式,从一个控制器跳转到另一个控制器的方法如下:123[self presen...转载 2018-03-29 17:22:34 · 2859 阅读 · 0 评论 -
谈Objective-C Block的实现
前言这里有关于block的5道测试题,建议你阅读本文之前先做一下测试。先介绍一下什么是闭包。在wikipedia上,闭包的定义)是:In programming languages, a closure is a function or reference to a function together with a referencing environment—a t转载 2015-06-09 19:42:30 · 969 阅读 · 0 评论 -
SIG Crash Logs in Xcode
大家在做iOS App开发时,调试是必不可少的。而对于像我这种新手来说,看懂Xcode 的Crash Logs或者调试过程中的stack trace又是必不可少的,下面俺总结下自己在开发过程中遇到的常见Crash Logs的具体含义和追踪此类问题的具体技巧。SIGSEGV(Segmentation fault)在内存中,这个地址是存在的。但是,你的程序并没有权利进入这一区域。转载 2014-11-25 19:04:38 · 789 阅读 · 0 评论 -
从ViewController初始化一直谈到强制横屏
文字罗嗦,篇幅较长,只需营养可直接看红字部分。一个viewController的初始化大概涉及到如下几个方法的调用: initWithNibName:bundle:viewDidLoadviewWillAppear:animated:viewDidAppear:animated:viewWillLayoutSubviewsviewDidLay转载 2014-08-14 10:49:40 · 2429 阅读 · 0 评论 -
OC笔记心得存档---深浅复制
读前小提示:对于深浅复制有一个清楚的了解,对于学习oc的朋友来说,至关重要。那么首先,我们要明白深浅复制是如何定义的呢。这里为了便于朋友们理解,定义如下。 浅 复 制:在复制操作时,对于被复制的对象的每一层复制都是指针复制。 深 复 制:在复制操作时,对于被复制的对象至少有一层复制是对象复制。 完全复制:在复制操作时,对于被复制的对象的每一层复制都是转载 2014-07-16 11:21:34 · 964 阅读 · 0 评论 -
iOS系统消息
一、键盘1、UIKeyboardWillShowNotification-将要弹出键盘2、UIKeyboardDidShowNotification-显示键盘3、UIKeyboardWillHideNotification-将要隐藏键盘4、UIKeyboardDidHideNotification-键盘已经隐藏5、UIKeyboardWillChangeFrameNotific转载 2014-04-09 15:18:01 · 1219 阅读 · 0 评论 -
GitHut上最受关注的Objective-C项目
对于经常在网上搜罗开源代码的开发者来说,GitHub无疑是当前的新宠,尤其是对于互联网及iOS开发领域的开发者来说,这里的资源比老牌的sourceforge及曾经的新贵google code都要丰富得多。从GitHub公布的各种语言排行榜上可以看到,托管在其上的开源代码最热门的十种语言分别是:Javascript, Ruby, Python, Shell, Java, PHP, C转载 2013-02-22 18:36:34 · 1347 阅读 · 0 评论 -
From C++ to Objective-C
点击打开链接转载 2012-11-16 18:07:18 · 719 阅读 · 0 评论 -
iOS并发编程指南
点击打开链接转载 2012-11-16 17:54:47 · 674 阅读 · 0 评论 -
KVO/KVC 实现机理分析
转帖请注明转之 苹果开发中文网(http://www.cocoadev.cn/Objective-C/KVO-20100222-0627.asp)以上说明是本文不可分割的一部分。Objective-C里面的Key-Value Observing (KVO)机制,非常不错,可以很好的减少浇水代码。关于KVO的学习,可以参考文章:《Key-Value Observing快速入门》:http转载 2012-11-15 16:47:45 · 637 阅读 · 0 评论 -
扩展机制category与associative
category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方法;associative,可以通过它来扩展属性;在iOS开发中,可能category比较常见,相对的associative,就用的比较少,要用它必须使用的头文件,然后就可以自由使用objc_getAssociatedObject以及objc_setAssociated转载 2012-09-16 11:35:44 · 1116 阅读 · 0 评论 -
如何在iOS中使用Block
Block可以帮助我们组织独立的代码段,并提高复用性和可读性。iOS4在UIKit中引入了该特征。超过100个的Apple API都使用了Block,所以这是一个我们必须开始熟悉的知识。Block是什么样的? 你可以使用^操作符来声明一个Block变量,它表示一个Block的开始。int num1 = 7; int(^aBlock)(int) = ^(int num2) {转载 2012-07-06 21:14:24 · 685 阅读 · 0 评论 -
iOS关于RunLoop和Timer
RunLoop这个东西,其实我们一直在用,但一直没有很好地理解它,或者甚至没有知道它的存在。RunLoop可以说是每个线程都有的一个对象,是用来接受事件和分配任务的loop。永远不要手动创建一个runloop,它是跟随着每个线程的。一个RunLoop接收两种source的事件:input source和timer source。同时必须知道的是,input source,runloop是异步交付的转载 2015-05-25 10:59:25 · 839 阅读 · 0 评论 -
iOS开发 之 不要告诉我你真的懂isEqual与hash!
为什么要有isEqual方法?isEqual方法的作用大家肯定是知道的:判断两个对象是否相等但是判断相等不是已经有==运算符了么, 为什么还要isEqual方法?这是因为:对于基本类型, ==运算符比较的是值; 对于对象类型, ==运算符比较的是对象的地址(即是否为同一对象)注意: 上述==运算符的说明适用于Objective-C和Java等不支持运算符重载的语言, 支持运算符重载的语言有C++所...转载 2018-03-30 10:29:30 · 431 阅读 · 0 评论 -
iOS 事件处理机制与图像渲染过程
·iOS RunLoop都干了什么·iOS 为什么必须在主线程中操作UI·事件响应·CALayer·CADisplayLink 和 NSTimer·iOS 渲染过程·渲染时机·CPU 和 GPU渲染·Core Animation·Facebook Pop介绍·AsyncDisplay介绍·参考文章iOS RunLoop都干了什么RunL转载 2016-08-09 20:07:50 · 733 阅读 · 0 评论 -
iOS、mac开源项目及库汇总
摘要iOS、mac开源项目及库汇总 可能项目中90%能用到的噢 http://www.googledaquan.com/archives/110 汇总地址UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UITableView或者Col转载 2016-07-11 12:06:22 · 2560 阅读 · 0 评论 -
iOS学习资源汇总(开源项目、第三方库、技术博客等等)
前言Github众所周知,全球最大的同性社区交友网站,在这里你可以获取任何你想要的,只要你想,只要Ta有。从事开发几年在Github上Star了不少好的东西,当然学到了更多,在此深深的膜拜下那些开源的大神。切入正题,下面对自己使用过或者Star过的第三方框架整理下,便于日后查阅,也方便他人借鉴,如果大家有什么好的库推荐,欢迎在本文下方评论,本篇文章不定时更新...戳这里转载 2016-05-28 09:38:26 · 3815 阅读 · 0 评论 -
优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案
目录(?)[+]简介本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge。它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发送、接收、消息处理器的注册与调用以及设置消息处理的回调。就像项目的名称一样,它是连接UIWebView和Javascript的bridge。在加入这转载 2016-03-14 19:56:43 · 565 阅读 · 0 评论 -
Object-C 类,对象,运行时,isa
如果不是Apple,不是App Store,Object-C恐怕早就淡出人们的视线了。大部分编程语言都是基于C语法风格的,所以初次接触这个非C风格的语言,会看不懂它那怪异的语法。但如果掌握了它之后,也并不会觉得它又太多的不同。今天记录一下它的底层运作。 1: 类Class: typedef struct objc_class * Class; 从Cl转载 2016-03-08 11:04:02 · 661 阅读 · 0 评论 -
Runtime of Objective-C
[0] Outline -- [1] 版本和平台 -- [2] 与Runtime System交互 -- [3] 方法的动态决议 -- [4] 消息转发 -- [5] 类型编码 -- [6] 属性声明[1] 版本和平台Runtime System对于Objective-C来说就好比是它的转载 2016-03-07 20:06:01 · 502 阅读 · 0 评论 -
再看知名应用背后的第三方开源项目
知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了Facebook Paper使用的第三方库转载 2016-03-18 15:24:20 · 1181 阅读 · 0 评论 -
github优秀开源项目大全-iOS
前言本文旨在搜集github上优秀的开源项目本文搜集的项目都是用于iOS开发本文会持续更新…完整客户端ioctocatgithub的iOS客户端,目前开源代码是V1版本,V2版本在appstore上可以下载ChatSecure-iOS使用XMPP协议的IM开源软件,很强大,在appstore上可以下载Seg转载 2015-07-28 19:22:47 · 1188 阅读 · 0 评论 -
iOS流媒体开发的资料
晚上无事,收集一些关于iOS流媒体开发的资料,供需要时查阅!(1)“Real-Time Streaming Protocol (RTSP)”比较官方的资料(链接)。(2)“ffmpeg”在百度百科的简介(链接)。(3)“ffmpeg”的官网:http://ffmpeg.org/,使用ffmpeg开发流媒体播放器的实例在这儿。(4)“http://stackoverf转载 2015-07-09 16:50:56 · 1175 阅读 · 0 评论 -
详解Objective-c Block应用
详解Objective-c Block应用目前只有Mac 10.6 和iOS 4有支援。Block是由一堆可執行的程式組成,也可以稱做沒有名字的Function (Anonymous function)详解Objective-c block应用是本文要介绍的内容,主要介绍的是Objective-c block应用,不多说,先来转载 2012-09-16 12:16:44 · 1067 阅读 · 0 评论 -
__bridge,__bridge_transfer和__bridge_retained详解
Core Foundation 框架Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。下面列举该框架支持进行管理的数据以及可提供的服务:群体数据类型 (数组、集合等)程序包字符串管理日期和时间管理原始数据块管理偏好管理URL及数据流操作线程和RunLoo转载 2012-09-14 12:50:14 · 12206 阅读 · 5 评论 -
layoutSubviews总结
ios layout机制相关方法- (CGSize)sizeThatFits:(CGSize)size- (void)sizeToFit——————-- (void)layoutSubviews- (void)layoutIfNeeded- (void)setNeedsLayout——————–- (void)setNeedsDisp转载 2012-09-14 10:23:12 · 76227 阅读 · 6 评论 -
iOS 5中的strong和weak关键字
iOS 5 中对属性的设置新增了strong 和weak关键字来修饰属性(iOS 5 之前不支持ARC)strong 用来修饰强引用的属性;@property (strong) SomeClass * aObject; 对应原来的 @property (retain) SomeClass * aObject; 和 @property (copy) SomeClass * aOb转载 2012-07-28 11:25:45 · 879 阅读 · 0 评论 -
应用程序生命周期(UIApplication sharedApplication)
iPhone应用程序是由主函数main启动,它负责调用UIApplicationMain函数,该函数的形式如下所示: int UIApplicationMain ( int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName ); 那么UIApplicationMai转载 2012-07-20 14:57:29 · 874 阅读 · 0 评论 -
Objective-C语法快速参考
大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧,我是在说我自己。 如果你和我一样,对苹果相关的开发:Mac OS X或是iPhone有兴趣,但是第一时间看到Objective-C就会头疼并伴有发烧症状的话,疗效比较好的快速治疗方法是阅转载 2012-03-25 14:28:37 · 609 阅读 · 0 评论 -
IOS5 ARC unsafe_unretained等说明
iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存。但是学习还是很有必要的。在iOS开发过程中,属性的定义往往与retain, assign, copy有关,我想大家都很熟悉了,在此我也不介绍,网上有很多相关文章。现在我们看看iOS5中新的关键字strong, weak, unsafe_unretained. 可以与以前的关键字对应学习st转载 2012-07-02 11:31:23 · 23173 阅读 · 9 评论 -
解析Objective-C反射
Objective-C反射是本文要介绍的内容,我第一次接触Java的时候就觉得整个反射包都很新颖,它使得Java和解释型的脚本语言更接近了,与此同时也拉开了和主流的C和C++的距离。在运行时可以窥视到一个对象的类元数据真的很不可思议,尽管这些可能不会在日常应用编程中经常使用到。从Java转到Objective-C的程序员应该会乐见Objective-C也支持反射。实际上,Objective转载 2012-07-12 15:49:40 · 832 阅读 · 0 评论 -
了解Objective-C中Selector基本概念和操作
了解Objective-C中Selector基本概念和操作是本文要介绍的内容,在iphone程序中会大量看到@selector这样的用法。>花了很大一个篇幅来解析这个语法,但是不知是翻译问题,还是解释过细,不大看得懂,很是不给力.直到程序用这个语法,并且仔细看了一些解析文章。才明白这一语法。 简而言之,你可以理解 @selector()就是取类方法的编号,他的行为基本可以等同C语言的中转载 2012-07-12 16:29:04 · 644 阅读 · 0 评论 -
详解Objective-C中委托和协议
Objective-C中委托和协议是本文要介绍的内容,委托和协议是两个概念,协议实际上相当于C++中的纯虚类的概念,只定义并只能由其它类来实现。而委托类似于Java中的接口。(Objective-C实现委托这种机制是利用协议来实现的,这种说法我现在认为是不对的,理由下述:)。Objective-C委托和协议本没有任何关系,协议如前所述,就是起到C++中纯虚类的作用,对于“委托”则和协议没有转载 2012-07-12 15:29:48 · 1017 阅读 · 0 评论 -
三个iOS开源文本编辑器EGOTextView、BCTextView、JTextView
EGOTextViewEGOTextView是一个开源的iOS富文本编辑器,可以用于HTML编辑器的开发,完全可以替代UITextView。 项目主页 BCTextViewBCTextView是另一个富文本编辑器,支持基础的HTML内容展示。项目主页 JTextViewJTextView是一个开源富文本编辑器,支持NSAttributedString文本存储转载 2012-07-05 15:04:15 · 2084 阅读 · 0 评论 -
推荐几个有用的iOS界面开源视图、控件
iOS开源:泡泡风格的短信、提示界面库CMPopTipViewCMPopTipView是一个泡泡风格的提示框开源控件,是从UIView派生而来,可以运行在iPad和iPhone上。iOS开源:视图UIView切换动画类库HMGLTransitionsHMGLTransitions是一个完成视图UIView之间切换的动画效果的开源类库代码。iOS开源:iPhone风格界面库Q转载 2012-07-05 15:02:52 · 2186 阅读 · 2 评论 -
推荐几个与移动数字阅读相关的iOS开源项目
PageCurl模拟纸书的翻页动作效果,类似iBook的翻页动作。项目主页 CoreTextWrapper文字排版Core Text的封装类,支持文字多列排版布局。项目主页FlipView一个模仿FlipBoard风格的开源阅读应用。项目主页 AFKPageFlipper一个具有纸书翻页动作效果的UIView派生类,广泛用于多种阅读类应用的界面开转载 2012-07-05 15:05:10 · 800 阅读 · 0 评论 -
浅谈Objective-C协议和委托
Objective-C协议和委托是本文呢要介绍的内容,主要介绍了Objective-C中协议和委托的方式,通过实例讲解让我们更快更方便的去学习Objective-C,先来看详细内容。protocol-协议,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。delegate-委托,顾名思义就是委托别人办事,就是当一件事情发生后,自己不处理,让别人来处理。转载 2012-06-21 12:38:35 · 1184 阅读 · 0 评论 -
NSInvocation简单使用
在 iOS中可以直接调用 某个对象的消息 方式有2中一种是performSelector:withObject:再一种就是NSInvocation第一种方式比较简单,能完成简单的调用。但是对于>2个的参数或者有返回值的处理,那就需要做些额外工作才能搞定。那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复杂的操作NSInvocation可以处理参转载 2012-08-18 00:03:58 · 714 阅读 · 0 评论 -
理解KVC与KVO(键-值-编码与键-值-监看)
KVC(Key-Value Coding)和KVO(Key-Value Observing)可能是Objective-C中最强大最实用的功能之一。下面的几个例子可以帮你更好的理解它们。 原文作者:Marcus Zarra原文地址 当通过KVC调用对象时,比如:[self valueForKey:@”someKey”]时,程序会自动试图通过几种转载 2012-08-29 10:21:37 · 5389 阅读 · 0 评论 -
UIScrollView的属性总结
contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentof转载 2012-09-14 00:52:17 · 3326 阅读 · 0 评论