![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios学习资料
lw5180822
这个作者很懒,什么都没留下…
展开
-
Objective-C总Runtime的那点事儿(一)消息机制
最近在找工作,Objective-C中的Runtime是经常被问到的一个问题,几乎是面试大公司必问的一个问题。当然还有一些其他问题也几乎必问,例 如:RunLoop,Block,内存管理等。其他的问题如果有机会我会在其他文章中介绍。本篇文章主要介绍RunTime。RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪转载 2014-10-20 09:55:30 · 743 阅读 · 0 评论 -
自定义返回按钮时,iOS7手势返回遇到的问题
从iOS7的Beta版开始,就着手做兼容工作,到Beta4的時候,应用已经基本兼容,只是偶然发现,iOS样式的手势返回,也就是用interactivePopGestureRecognizer返回的时候,出现下面一些列问题。各方调研,无果,史无前例(废话,刚出来的7,上哪有例去--#)。A,我的应用是自定义的返回按钮图标(默认返回按钮样式不会出现问题3),为了保险,写了这句代码[se转载 2013-11-05 12:53:31 · 1298 阅读 · 0 评论 -
如何高效利用GitHub
Q1:GitHub是什么A1:一家公司位于旧金山,由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。迄今拥有59名全职员工,主要提供基于git的版本托管服务。在此之前,它是由Tom与Chris 在本地程序员聚会中,开始的一个用于托管git的项目。正如每个伟大的传奇都开始于一场冒险,Tom在转载 2013-11-04 11:22:58 · 920 阅读 · 0 评论 -
iOS 7 教程:定制iOS 7中的导航栏和状态栏
注:本文译自Customizing Navigation Bar and Status Bar in iOS 7近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7。最新的iOS 7外观上有大量的改动。从开发者的角度来看,导航栏和状态栏就发生了明显的变化。状态栏现在是半透明的了,这也就意味着导航栏会显示在状态栏后面。有些情况下,导航栏的背景图片可以延伸显示到状态栏后面。转载 2013-11-04 17:20:22 · 1060 阅读 · 0 评论 -
使用GitHub进行团队合作
原文: Team Collaboration With GitHubGitHub已经成为的一切开放源码软件的基石。开发人员喜欢它,基于它进行协作,并不断通过它开发令人惊叹的项目。除了代码托管,GitHub的主要吸引力是使用它作为一个协作开发工具。在本教程中,让我们来看看一些最有用的GitHub的功能,特别是使团队工作更有效率,更高生产力,非常重要的,好玩的那些功能!转载 2013-11-04 11:31:00 · 3508 阅读 · 0 评论 -
日期处理常用总结
Dates NSDate类提供了创建date,比较date以及计算两个date之间间隔的功能。Date对象是不可改变的。 如果你要创建date对象并表示当前日期,你可以alloc一个NSDate对象并调用init初始化:[cpp] view plaincopyNSDate *now = [[NSDate a转载 2013-10-14 11:54:04 · 562 阅读 · 0 评论 -
反射根据变量的引用获取变量名
一、使用介绍 项目有的时候,会遇到一些特殊的处理,想要根据一个实例的引用,获取这个实例在代码中的名称。比如在处理View的坐标的时候,我们将UIView的坐标信息配置到plist文件中,我们可以设置一个key,再通过这个key来获取配置文件中的坐标等信息。有没有更简单的方法呢,或者我只想简单的用实例变量的变量名做为key。下面就介绍一种简单的,根据实例变量的引用获取实例变量名的办法。转载 2013-09-13 13:09:53 · 1166 阅读 · 0 评论 -
UITableView 性能优化笔记
网络图片异步加载,SDWebImage。文字直接 drawInRect/drawAtPoint 绘制,参考 ABTableViewCell,AdvancedTableViewCells。本地图片也可以直接绘制,或者用 CALayer 来添加显示。cell 重用机制。cell 内容尽量避免透明效果。如非必要,减少 reloadData 全部 cell,只 reloadRowsAt转载 2013-07-26 14:46:32 · 747 阅读 · 0 评论 -
实战做项目如何选择开源许可协议(二)- 开放代码
通过《实战做项目如何选择开源许可协议(一)-了解协议》大概知道了有哪些开源协议和各个协议的作用和区别。我们准备把代码开放出去时,需要了解各个代码托管平台如何设置开源协议。目前常用的平台有:googlecode、github、sourceforge、codeplex。下面分别列一下这些平台如何设置开源协议:1、googlecode,google推出的代码托管平台,整体可用还是比较强的,如果不转载 2013-08-02 12:52:09 · 754 阅读 · 0 评论 -
iOS如何避免图像解压缩的时间开销
这几天一直在折腾项目中UITableView的优化。因为cell中涉及到很多(而且很大)的图片,所以在快速滚动的时候,ImageView重新绘制新的图片造成了比较大的性能消耗。查了挺多的资料,看到一篇分析jpg,png(优化前后)在各个设备上测试分析,原文在这里(voiding Image Decompression Sickness),本来想自己翻译的,后来在LongTimeNoC看转载 2013-08-01 18:23:56 · 789 阅读 · 0 评论 -
优化UITableView性能
在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看到它的身影,可见它的重要性。然而在使用第三方应用时,却经常遇到性能上的问题,普遍表现在滚动时比较卡,特别是table cell中包含图片的情况时。实际上只要针对性转载 2013-07-26 14:24:13 · 684 阅读 · 0 评论 -
利用预渲染加速iOS设备的图像显示
最近在做一个UITableView的例子,发现滚动时的性能还不错。但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感。于是我猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如此。后来在《Improving Image Drawing Performance on iOS》一文中找到了一些提示:原来在显示图像时,解压和重采样会消耗很多CPU时间;而如果预转载 2013-07-26 14:06:00 · 597 阅读 · 0 评论 -
实战做项目如何选择开源许可协议(一)-了解协议
目前国内开源项目正在逐渐升温,中国也开始有不少优秀的开源项目突显出来。在大家摩拳擦掌准备加入开源大军时,也要知道这个圈子里的规则。技术人员不能只是研究技术,任何圈子都有规则,要知道了才能玩得好。前段时间有件关于开源软件的事情挺热闹的,关于国内一个开发者把自己作品开源出来被别的公司的人拿去包装成自己的产品高价卖出去。大部分做开源软件的开发者都不太怎么关注版权这些,具体微博如下:hoowa_s转载 2013-08-02 12:51:06 · 710 阅读 · 0 评论 -
iOS ARC详解
ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过指定的语法,让编转载 2013-07-01 17:17:06 · 927 阅读 · 0 评论 -
iOS开源项目选编7.14
SVProgressHUD SVProgressHUD界面简洁,主要用来展示耗时的任务进程或命令。项目地址:https://github.com/samvermette/SVProgressHUD附件:/cms/uploads/soft/130712/4196-130G21P922.zipMantleMantle是一个建模框架,实现了多个不转载 2013-07-15 10:06:12 · 859 阅读 · 0 评论 -
iOS7 UI改变总结
苹果官方文档:https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/ContentViews.html#//apple_ref/doc/uid/TP40013174-CH10-SW1IOS7在UI方面发生转载 2013-11-21 14:33:35 · 1124 阅读 · 0 评论 -
what the difference between __weak and __block reference?
From the docs about __block__block variables live in storage that is shared between the lexical scope of the variable and all blocks and block copies declared or created within the variable’s le原创 2013-11-11 09:37:35 · 1667 阅读 · 0 评论 -
Git 命令详解
Git的基本命令:git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:'git pull origin master'就是将origin这个版本库的代码更新到本地的master主枝,该功能类似于SVN的updategit add:是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的转载 2013-11-27 15:13:49 · 764 阅读 · 0 评论 -
iOS 3D UI——CALayer的transform扩展解析
引言这篇文章的主要内容来自于CocoaChina论坛上的一篇文章,只不过原文在有些地方介绍得不是很详细,我这里增加了一些解析,也算是自己做笔记,原文和代码均可以在这个链接里找到:IOS 3D UI —– CALayer的transform扩展。iOS的UI是基于UIView类的,我们能看到的每个UI元素都是UIView或者UIView的子类。View按树形结构组织起来,树根是UIW转载 2014-11-18 10:31:13 · 854 阅读 · 0 评论 -
OBJECTIVE-C 中的 META-CLASS 是什么?
原文地址在这篇文章中,我关注的是 Objective-C 中的一个陌生的概念—— meta-class。在 Objective-C 中的每个类都有一个相关联的 meta-class,但是你很少会直接使用 meta-class,他们仍旧保持着神秘的面纱。我们从在运行时创建一个类开始。通过查看 “class pair”,我会解释 meta-class 是什么,同时也会谈谈在 Objective转载 2014-10-09 11:37:15 · 571 阅读 · 0 评论 -
BLOCK 还是代理
原文地址:http://stablekernel.com/blog/blocks-or-delegation/上次发了一篇博客后,@saambarati 问了个非常棒的问题,简单来说:“什么时候我是用 block 代替代理用于回调?”这种情况下,我喜欢问我自己,“苹果会怎么做?”当然,我们知道苹果是怎么做,因为文档本身就是对设计模式使用的参考书,如果我们换个角度看待它。我们转载 2014-10-09 14:17:19 · 792 阅读 · 0 评论 -
理解 Objective-C Runtime
当人们初学 Cocoa/Objective-C 时,Objective-C Runtime 是被忽略的特性之一。原因是 Objective-C(这门语言)很容易在几小时内就熟悉,新学 Cocoa 的人花费他们大部分的时间学习 Cocoa 框架和适应它是如何工作的。然而每个人至少应该知道一些 runtime 的工作细节,需要比知道编译器会把 [target doMethodWith:var1]; 转转载 2014-10-09 09:38:44 · 557 阅读 · 0 评论 -
(译)Objective-C的动态特性
这是一篇译文,原文在此,上一篇文章就是受这篇文章启发,这次干脆都翻译过来。过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的。也就是说有很大一部分开发者都没有使用Objective-C太长时间。当你接触一门新语言时,更多地会关注基础知识,转载 2014-03-07 09:20:47 · 813 阅读 · 0 评论 -
iOS崩溃日志打印出来或者写进文件
对于真机,日志没法保存,不好分析问题。所以有必要将日志保存到应用的Docunment目录下,方便取出分析。首先是日志输出,分为c的printf和标准的NSLog输出,printf会向标准输出(sedout)打印,而NSLog则是向标准出错(stderr),我们需要同时让他们都将日志打印到一个文件中。 其次是Crash问题;Crash分为两种,一种是由EXC_BAD_ACCESS原创 2014-02-14 14:17:13 · 1542 阅读 · 0 评论 -
Method Swizzling
Method swizzling指的是改变一个已存在的选择器对应的实现的过程,它依赖于Objectvie-C中方法的调用能够在运行时进改变——通过改变类的调度表(dispatch table)中选择器到最终函数间的映射关系。举个例子,假设我们想跟踪在一个iOS应用中每个视图控制器展现给用户的次数:我们可以给每个视图控制器对应的viewWillAppear:实现方法中增加相应的跟转载 2014-02-26 18:23:20 · 764 阅读 · 0 评论 -
iOS安全系列汇总
感谢各位作者: @hangcom2010、@吴发伟Ted、@拓词Joey、@程序媛念茜。iOS应用逆向工程知乎专栏:iOS安全开发者眼中的越狱iPhone安全性iOS安全开发防护摘要Reveal查看任意app的高级技巧书籍推荐:《iOS应用逆向工程:分析与实战》iOS越狱程序开发工具篇构建和部署Your First Tweak总结转载 2014-02-26 19:08:24 · 1283 阅读 · 0 评论 -
Objective C运行时(runtime)技术的几个要点总结
前言: Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:(1)使用class_replaceMethod/class_addMethod函数在运行时对函数进行动态替换或增加新函数(2)重载f转载 2014-02-26 19:03:24 · 755 阅读 · 0 评论 -
iOS中设置文件不备份
从iOS5.0.1引入的设置不要备份文件(文件夹也适用)的扩展属性 1 #include 2 - (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL 3 { 4 const char* filePath = [[URL path] fileSystemRepresentation]; 5原创 2014-02-24 11:44:49 · 1071 阅读 · 0 评论 -
类簇在iOS 开发中的应用
类簇(class cluster)是一种设计模式,在Foundation Framework中被广泛使用,举个简单的例子NSArray *arr = [NSArray arrayWithObjects:@"foo",@"bar", nil];NSLog(@"arr class:%@", [arr class]);// output: __NSArrayI显然__NSArr转载 2014-01-25 10:15:14 · 607 阅读 · 0 评论 -
iOS中使用blend改变图片颜色
iOS中使用blend改变图片颜色使用Blend处理图片颜色最近对Core Animation和Core Graphics的内容东西比较感兴趣,自己之前也在这块相对薄弱,趁此机会也想补习一下这块的内容,所以之后几篇可能都会是对CA和CG学习的记录的文章。在应用里一个很常见的需求是主题变换:同样的图标,同样的素材,但是需要按照用户喜爱变为不同的颜色。在iOS5和6的S转载 2013-12-12 10:57:11 · 793 阅读 · 0 评论 -
iPhone键盘通知与键盘定制
一.键盘通知当文本View(如UITextField,UITextView, UIWebView内的输入框)进入编辑模式成为first responder时,系统会自动显示键盘。成为firstresponder可能由用户点击触发,也可向文本View发送becomeFirstResponder消息触发。当文本视图退出first responder时,键盘会消失。文本View退出fir转载 2013-12-03 12:42:42 · 990 阅读 · 0 评论 -
Git 常用命令速查
一、 Git 常用命令速查git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:ndshow转载 2013-11-27 15:20:15 · 1408 阅读 · 0 评论 -
A look inside blocks: Episode 1
Today I have been taking a look at the internals of how blocks work from a compiler perspective. By blocks, I mean the closure that Apple added to the C language and is now well and truly established转载 2013-06-27 14:05:15 · 624 阅读 · 0 评论 -
iOS如何避免图像解压缩的时间开销
当开始iCatalog.framework的工作时,我发现使用大尺寸图片会引起一些恼人的问题,“大”意味着这个图片有足够大的分辨率(1024×768)来覆盖iPad的整个屏幕,或者覆盖未来Retina Display iPad(如果有的话)的双倍分辨率(2048×1536)屏幕。想像一个杂志类型的App,一个分页的UIScrollView,每页显示一个UIImageView,一旦某一页进入转载 2013-07-10 18:44:27 · 648 阅读 · 0 评论 -
25个增强iOS应用程序性能的提示和技巧--高级篇
高级当且仅当下面这些技巧能够解决问题的时候,才使用它们:22.加速启动时间23.使用Autorelease Pool24.缓存图片 — 或者不缓存25.尽量避免Date格式化 高级性能提升寻找一些高明的方法,让自己变为一个全代码忍者?下面这些高级的性能优化技巧可以在适当的时候让程序尽可能的高效运行! 22) 加速启动时间能快速转载 2013-05-23 14:20:16 · 596 阅读 · 0 评论 -
25个增强iOS应用程序性能的提示和技巧-初级
在开发iOS应用程序时,让程序具有良好的性能是非常关键的。这也是用户所期望的,如果你的程序运行迟钝或缓慢,会招致用户的差评。然而由于iOS设备的局限性,有时候要想获得良好的性能,是很困难的。在开发过程中,有许多事项需要记住,并且关于性能影响很容易就忘记。 本文收集了25个关于可以提升程序性能的提示和技巧,把性能优化技巧分为3个不同的等级:初级、中级和高级 初级转载 2013-05-23 14:16:04 · 613 阅读 · 0 评论 -
Core Animation之多种动画效果
前面介绍了Core Animation基础知识,还有CALayer的简单使用,最终还是有要动画的滴,这里列出几个动画效果,参考下能加深对Core Animation的认识和理解。 1、把图片移到右下角变小透明使用CAAnimationGroup叠加动画效果,就是下面按钮《把图片移到右下角变小透明》描述的效果:上面三个图是动画的三个状态,实现代码如下:转载 2013-05-23 14:12:56 · 647 阅读 · 0 评论 -
Core Animation基础介绍
转自荣芳志的博客:Core Animation之基础介绍 Core Animation可以翻译为核心动画,它为图形渲染和动画提供了基础。使用核心动画,你只需要设置一些参数比如起点和终点,剩下的帧核心动画为你自动完成。核心动画使用硬件加速,不用消耗cpu资源。其实平时咱们开发的iOS应用都在有意无意的使用了核心动画。动画不会替代View,而是和View一起提供更好的性能。Core A转载 2013-05-23 14:09:41 · 529 阅读 · 0 评论 -
Objective-C runtime之消息转发机制(三)
学了那么久的Objective-C,给我的感觉就是它什么都是动态的,你将会听到一个新的名词:一、动态方法解析1、+(BOOL) resolveInstanceMethod:(SEL) sel这是NSObject根类提供的类方法,调用时机为当被调用的方法实现部分没有找到,而消息转发机制启动之前的这个中间时刻。2、@dynamic关键字Objective-C2.转载 2013-05-21 17:25:30 · 734 阅读 · 0 评论 -
Objective C线程 之 GCD介绍
GCD介绍(一): 基本概念和Dispatch QueueGCD提供很多超越传统多线程编程的优势:易用: GCD比之thread跟简单易用。由于GCD基于work unit而非像thread那样基于运算,所以GCD可以控制诸如等待任务结束、监视文件描述符、周期执行代码以及工作挂起等任务。基于block的血统导致它能极为简单得在不同代码作用域之间传递上下文。效率: GCD被实现得如此转载 2013-05-21 17:57:54 · 911 阅读 · 0 评论