ios笔记
文章平均质量分 77
唯一的等待
这个作者很懒,什么都没留下…
展开
-
快速玩转Apple Pay开发!
Apple Pay是一个基于NFC的支付系统,几乎所有的银行都支持。不知道大家还有没有印象,当初支付宝和位置的支付刚出来的时候,银行都恨不得想把他俩弄死。为啥Apple Pay一出来各大银行都支持。因为它和支付宝支付、微信支付是完全不同的概念。Apple Pay根本不是一个第三方支付工具。它仅仅是一种支付的表现形式。说白了Apple Pay就是帮银行刷卡而已。而支付宝和微信都是有自己的账户体系,甚原创 2016-02-22 10:50:11 · 726 阅读 · 0 评论 -
详细整理:UITableView优化技巧
前面的有些小扯,后面一部分可能稍微有点儿用最近在微博上看到一个很好的开源项目VVeboTableViewDemo,是关于如何优化UITableView的。加上正好最近也在优化项目中的类似朋友圈功能这块,思考了很多关于UITableView的优化技巧,相信这块是难点也是痛点,所以决定详细的整理下我对优化UITableView的理解。UITableView作为iOS开发中最重要的控转载 2015-06-08 11:10:02 · 439 阅读 · 0 评论 -
深入理解RunLoop
RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。目录RunLoop 的概念RunLoop 与线程的关系RunLoop 对转载 2015-06-08 11:55:36 · 356 阅读 · 0 评论 -
自定义iOS7导航栏背景,标题和返回按钮文字颜色
在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem更改导航栏的背景和文字Color方法一:[objc] view plaincopy//set NavigationBar 背景颜色&tit转载 2015-06-04 16:46:59 · 381 阅读 · 0 评论 -
xCode6制作动态及静态Framework
有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用 iOS-Universal-Framework ,随着xCode6的发布,相信小伙伴们已经都知道了,xCode6支持做Framework了. 同时iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用xCode6制作,目前网上也原创 2015-05-22 15:27:48 · 563 阅读 · 0 评论 -
实时显示iOS编写UI代码效果:有效提高UI编写速度
编写iOS应用UI的方式大概有两种,一种是Storyboard/Xib,另一种是手写代码。采用Storyboard/Xib方式组织UI,由于提供可视化的特性,只要从UI库中拖动UI控件,便可以显示结果,极大地提高开发速度。但面临一个问题就是多人协作开发,由于所有的UI都放在同一个Storyboard文件中,使用Git/SVN合并代码就会出现冲突。多人协作开发还不是主要问题,有人提出可以创建多个St原创 2015-05-15 15:42:56 · 1229 阅读 · 0 评论 -
App适配iOS8遇到的兼容问题
1. 键盘弹出方向与StatusBar方向不一致在App中,第一个ViewController是只支持竖屏方向(Portrait)的,切换到第二个页面,默认也是Portrait,但用户可以点击按钮切换为横屏(Landscape)。所以,我把App-Info.plist只选中了Portrait一项,并且在Root ViewController重载了以下方法:转载 2015-05-20 11:21:10 · 2371 阅读 · 0 评论 -
iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
一、概要平时项目开发中,可能使用第三方提供的静态库.a,如果.a提供方技术不成熟,使用的时候就会出现问题,例如:在真机上编译报错:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).在模拟器上编译报错:No architectures to转载 2015-04-08 16:26:56 · 695 阅读 · 0 评论 -
运行时(runtime)技术的几个要点总结 和 消息转发
运行时(runtime)技术的几个要点总结Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:(1)使用class_replaceMethod/class_addMethod函数在运行时对函数进行动态替换或增加新函转载 2015-04-03 14:38:18 · 677 阅读 · 0 评论 -
iOS下使用FFMPEG的一些总结
ffmpeg是一个多平台多媒体处理工具,处理视频和音频的功能非常强大。目前在网上搜到的iOS上使用FFMPEG的资料都比较陈旧,而FFMPEG更新迭代比较快; 且网上的讲解不够详细,对于初次接触FFMPEG的新手(例如我)来说确实不太好使用。为了防止忘记,这里对iOS下使用FFMPEG做一个总结。1. FFMPEG层次结构的简单理解要使用FFMPEG,首先需要理解F转载 2015-07-08 11:17:50 · 2345 阅读 · 0 评论 -
轻松学习之 Objective-C消息转发
我们要通过一个小例子来简单、通俗的理解一下什么是消息转发以及如何消息转发,希望看完这篇文章时大家会彻底的明白OC的消息。首先,你需要知道这两个概念:OC中调用方法就是向对象发送消息。比如 :1[person run];这实际上这是在给person这个对象发送run这个消息。那转载 2015-06-12 10:08:56 · 452 阅读 · 0 评论 -
app 申请加急审核
提交完成后进入加急审核页面。链接:https://developer.apple.com/appstore/contact/appreviewteam/index.html在i would like to里选择加急审核然后填写相关信息。App Information里填写应用名称,ID填写9位数字ID 现在(2015-原创 2016-01-08 14:49:19 · 495 阅读 · 0 评论 -
神奇的Block
本文不做Block的基本介绍和底层实现原理,有兴趣的同学直接戳这篇文章,写得灰常好,本文只在应用层面上带领读者进行思考,并整理出一些结论.这些结论是我从书上和上网资料收集所得,并通过实践进行验证而来,希望能和高手们共同探讨 :)在看例子之前,至少要知道block有几个类型._NSConcreteGlobalBlock(全局块)_NSConcreteStackBlock(栈块)_原创 2015-11-08 19:38:32 · 529 阅读 · 0 评论 -
iOS9的新特性以及适配方案
2015年9月8日,苹果宣布iOS 9操作系统的正式版在太平洋时间9月16日正式推出,北京时间9月17日凌晨1点推送。新的iOS 9系统比iOS8更稳定,功能更全面,而且还更加开放。iOS 9加入了更多的新功能,包括更加智能的Siri,新加入的省电模式。iOS 9为开发者提供5000个全新的API。iOS9新的特性这对于使用者来说固然是一个好消息,每一次版本更新带来的都是更多的转载 2015-11-08 19:19:25 · 624 阅读 · 0 评论 -
ios 上一些好的自定义控件收集
1、TYAttributedLabel简单易用的富文本(作者:12207480)TYAttributedLabel 简单易用的属性文本的控件(无需了解CoreText)支持富文本,图文混排显示,自适应高度支持添加高度自定义文本属性支持添加属性文本,自定义链接支持添加UIImage和UIView控件希望大家喜欢,喜欢的话就给个star吧原创 2015-05-25 10:49:39 · 1086 阅读 · 0 评论 -
UIWebView与JS的深度交互
事情的起因还是因为项目需求驱动。折腾了两天,由于之前没有UIWebView与JS交互的经历,并且觉得这次在功能上有一定的创造性,特此留下一点文字,方便日后回顾。我要实现这样一个需求:按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的HTML。除此之外,还需要禁用获取的HTML文本中自带的 《 img 》 标签自动加载,并把下载图片的操作放在转载 2015-09-06 16:14:39 · 408 阅读 · 0 评论 -
OC 中runtime的理解 以及 使用
什么是Runtime我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target doSomething];会被转化成objc_msgSend(target, @selector(doSomething));。OC中一切都被设计成了对象,我们都知道一个类被初始化成一个实例,这个实例是一个对象。实际上一个类本质上也是一个对象,在runtime中用结构体表示。原创 2015-09-07 15:21:08 · 2053 阅读 · 1 评论 -
个人常用iOS第三方库以及XCode插件介绍
前言第三方库是现在的程序员离不开的东西 不光是APP开发 基本上所有的商业项目 都会或多或少的使用到第三方库Github上Star>100的开源库数量如下可以看到JS以绝对的优势排名第一 一定程度上也说明了JS在这几年为什么发展得这么迅速 不会点JS都不好意思说自己是码农 不过现在JS圈的造轮子浪潮也是愈演愈烈了 自己不写个框架都不好意思打招呼OC排名第四 相信转载 2015-07-20 17:39:34 · 1536 阅读 · 0 评论 -
提高iOS开发效率的方法和工具
介绍这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具。IDE首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时在使用AppCode等其他的IDE,在这里我主要介绍Xcode中提升开发效率的方法。1.善用快捷键快捷键是开发中必不可少的,当你善于使用快捷键的时候,十指在键盘上飞舞,那画面太美,我不敢想象。转载 2015-07-27 11:35:17 · 434 阅读 · 0 评论 -
_cmd的详细用法
_cmd在Objective-C的方法中表示当前方法的selector,正如同self表示当前方法调用的对象实例。?1234567891011121314151617181920//比如需原创 2015-03-27 19:14:57 · 857 阅读 · 0 评论 -
深入学习Objective-C(二)理解 objc 关联对象 (Associated Objects)
我们都知道,我们在普通的 objc 类中,一般我们都会把成员变量声明在@interface中,如果你想把成员变量暴露在头文件中,你可以把它声明在实现文件中,甚至你也可以放在类扩展的区域中,但是,你却不能在普通的类目中声明成员变量。因为普通的类目只是用来扩展方法的,不能用来扩展成员变量。有些时候,我们在设计代码时,会把代码分离成很多个类目,这样方便代码的管理。如下所示:对每种转载 2015-03-27 19:12:05 · 671 阅读 · 0 评论 -
CocoaPods详解之----使用篇
一、什么是CocoaPods1、为什么需要CocoaPods在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson、AFNetworking、Reachability等等。使用这些库的时候通常需要:下载开源库的源代码并引入工程向工程中添加开源库使用到的framework解决开源库和开源库以及开源库和工程之间的依赖关系、检查重复添加的framework等转载 2015-03-26 18:49:35 · 342 阅读 · 0 评论 -
Key-Value Observing机制 学习
知识点介绍Key-Value Observing (简写为KVO):当指定的对象的属性被修改了,允许对象接受到通知的机制。每次指定的被观察对象的属性被修改的时候,KVO都会自动的去通知相应的观察者。KVO的优点:当 有属性改变,KVO会提供自动的消息通知。这样的架构有很多好处。首先,开发人员不需要自己去实现这样的方案:每次属性改变了就发送消息通知。这是KVO 机制提供的最大的优原创 2014-08-12 14:08:32 · 370 阅读 · 0 评论 -
在xcode中使用instruments
比较了好多关于instruments 还是发现老外写的比较牛逼.于是果断翻译过来.有能力的的可以去看英文原版,鼓励大家看原版资料远离二手教程。这里是原文 入门为了节省大家的时间,提供一个演示的Demo给大家。代码传送门. 下载后解压然后用xcode打开。 编译运行APP后 然后在搜索框内输入任意词汇,点击结果你会看到下面的结果转载 2014-08-11 17:58:52 · 1438 阅读 · 0 评论 -
iOS8 通知中心扩展制作入门
总览扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个非常大的功能点,开发者可以通过系统提供给我们的扩展接入点 (Extension point) 来为系统特定的服务提供某些附加的功能。对于 iOS 来说,可以使用的扩展接入点有以下几个:1. Today 扩展 - 在下拉的通知中心的 "今天" 的面板中添加一个 widget2. 分享扩展 - 点击分享按钮转载 2014-08-07 16:57:06 · 999 阅读 · 0 评论 -
Method Swizzling
Method Swizzling 原理在Objective-C中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字。利用Objective-C的动态特性,可以实现在运行时偷换selector对应的方法实现,达到给方法挂钩的目的。每个类都有一个方法列表,存放着selector的名字和方法实现的映射关系。IMP有点类似函数指针,指向具体的Meth转载 2014-07-31 15:01:32 · 461 阅读 · 0 评论 -
ios 知识小积累
1、在使用xcode5的时候由于之前一直用了boost出现了一个问题recursive template instantiation exceeded maximum depth of 128解决如下:http://trac.macports.org/ticket/406342、boost安装问题首先编译Boost.Build原创 2014-07-28 18:24:01 · 630 阅读 · 0 评论 -
Present ViewController Modally
一、主要用途 弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerController等。弹出模态ViewController主要使用于一下这几种情形: 1、收集用户输入信息 2、临时呈现一些内容 3、临时改变工作模式 4、相应设备方向变转载 2014-07-24 16:03:44 · 411 阅读 · 0 评论 -
objectForKey与valueForKey在NSDictionary中的差异
从 NSDictionary 取值的时候有两个方法,objectForKey: 和 valueForKey:,这两个方法具体有什么不同呢?先从 NSDictionary 文档中来看这两个方法的定义:objectForKey: returns the value associated with aKey, or nil if no value is associated with a转载 2014-07-25 11:01:42 · 373 阅读 · 0 评论 -
定制iOS 7中的导航栏和状态栏
注:本文译自Customizing Navigation Bar and Status Bar in iOS 7近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7。最新的iOS 7外观上有大量的改动。从开发者的角度来看,导航栏和状态栏就发生了明显的变化。状态栏现在是半透明的了,这也就意味着导航栏会显示在状态栏后面。有些情况下,导航栏的背景图片可以延伸显示到状态栏后面。翻译 2014-07-25 17:46:55 · 425 阅读 · 0 评论 -
iOS 多线程 锁 互斥 同步
在iOS中有几种方法来解决多线程访问同一个内存地址的互斥同步问题:方法一,@synchronized(id anObject),(最简单的方法)会自动对参数对象加锁,保证临界区内的代码线程安全[cpp] view plaincopyprint?@synchronized(self) { //转载 2014-08-12 13:50:27 · 413 阅读 · 0 评论 -
Objective-C中的instancetype和id区别
下面的翻译:原文地址:http://blog.csdn.net/wzzvictory/article/details/16994913一、什么是instancetypeinstancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象。我们都知道未知类型的的对象可以用id关键字表示,那为什么还会再有一个instancetype呢转载 2014-08-15 10:16:59 · 347 阅读 · 0 评论 -
xcode 6 创建pch文件
XCode6新建项目的时候,不会默认创建pch文件了,最近研究了下做个记录1、创建一个新的工程:File-->New-->Project2、创建一个新的PCH文件:File-->New-->File-->Other-->PCH File3、在setting里面设置一下这pch file的文件,进行关联原创 2015-01-21 15:19:58 · 335 阅读 · 0 评论 -
为iPhone 6设计自适应布局
Apple从iOS 6加入了Auto Layout后开始就比较委婉的开始鼓励、建议开发者使用自适应布局,但是到目前为止,我感觉大多数开发者一直在回避这个问题,不管是不是由于历史原因造成的,至少他们在心底还坚守着固定布局的老传统思想。随着iPhone6、iPhone6 Plus的到来,使用自适应布局更是迫在眉睫的事,固定布局的老传统思想脆弱的不堪一击。现在的iPhone有4种尺寸,如果算上iPa转载 2014-10-22 10:01:56 · 796 阅读 · 0 评论 -
message sent to deallocated instance
在XCode的以前版本中,如果遇到了[代码]c#/cpp/oc代码:1message sent to deallocated instance 0x6d564f0我们可以使用info malloc-history 0x6d564f0来查看调用堆栈来查看崩溃发生的地方,这种方法这里不作阐述,大家自行百度。转载 2014-10-15 20:03:14 · 447 阅读 · 0 评论 -
使用Xcode 6将你的项目本地化
iOS和OSX支持40种语言的本地化,Xcode无疑为这一过程提供了强有力的支持。苹果将这一多语言适配过程细分为Internationalization(国际化)和Localization(本地化)两个阶段。国际化—准备你的APP在将你的APP适配各种语言本地化之前,你得先让你的APP富有国际范儿,也就是说国际化是一条通往本地化的必经之路。在国际化阶段,你需要让你的APP与语言和区转载 2014-10-10 16:24:10 · 524 阅读 · 0 评论 -
iOS 使用Quartz 2D画线
画虚线需要用到函数:CGContextSetLineDash此函数需要四个参数:context – 这个不用多说phase - 稍后再说lengths – 指明虚线是如何交替绘制,具体看例子count – lengths数组的长度CGContextRef context =UIGraphicsGetCurrentContext();转载 2014-10-24 10:28:40 · 442 阅读 · 0 评论 -
不容错过的iOS 8的导航交互
以下是iOS 8中非常酷的导航交互方式,可以让用户看到更多内容。滚动页面时隐藏Bar如果你有一个Table View,仅需要将导航控件的hidesBarsOnSwipe属性设置为true就OK了。12345678class QuotesTableViewController:转载 2014-09-28 15:57:09 · 540 阅读 · 0 评论 -
Xcode6中自动布局autolayout和sizeclass的使用
一、关于自动布局(Autolayout)在Xcode中,自动布局看似是一个很复杂的系统,在真正使用它之前,我也是这么认为的,不过事实并非如此。 我们知道,一款iOS应用,其主要UI组件是由一个个相对独立的可视单元构成,这些可视单元有的主要负责向用户输出有用的信息,有些则负责信息的输入(交互),交互的过程中往往还伴随有动画的效果,已达到整个信息传递的连贯性以及用户体验的细腻感。可视单元,转载 2014-09-17 18:29:25 · 511 阅读 · 0 评论 -
关于iOS自动布局
这里做一个通过代码实现自动布局的Demo,通过IB来做的就不讲了,网上相关的资料很多,这里给出一个写的不错的链接,有兴趣的同学自己看吧.iOS7自动布局教程(一)iOS7自动布局教程(二) --英文要谈自动布局,那基本的视图是第一步,做了一个这样的ViewController?1234转载 2014-09-22 11:38:03 · 505 阅读 · 0 评论