自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UITextField UITextView 输入长度限制

要限制一个TextField的输入长度,包含字母、数字、特殊符号、汉字,大多数人想到以下这个方法如果不输入汉字的话,下面这个方法可以,但是如果要输入汉字的话,这个方法就满足不了- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSStr...

2018-04-08 13:27:06 321

原创 iOS APP之间跳转 应用间跳转

从一个APP跳转到另一个APP,或者是从一个APP跳转到网页浏览器,再从一个APP跳转到设置里面的某个页面,都要用到这个首先创建两个APP:TestA,TestB,最终效果从TestA跳转到TestB或者从TestB跳转到TestA需要配置info.list信息配置白名单:  (TestA为例,TestB配置操作一样)key>NSAppTransportSe

2018-01-16 05:57:26 370

原创 Category 高级使用

1、分类会覆盖本类的方法?1. category的方法没有“完全替换掉”原来类已经有的方法,也就是说如果category和原来类都有methodA,那么category附加完成之后,类的方法列表里会有两个methodA2. category的方法被放到了新方法列表的前面,而原来类的方法被放到了新方法列表的后面,这也就是我们平常所说的category的方法会“覆盖”掉原来类的同名

2017-09-08 14:57:19 214

原创 iOS NSTimer 子线程 创建与取消

1.子线程中NSTimer的开启首先在.m文件中声明两个属性一个是子线程 一个是子线程中的NSTimer。@property (nonatomic, strong) NSThread *thread1;@property (nonatomic, strong) NSTimer *threadTimer;然后用GCD在全局全队中创建一个子线程并创建NSTimer。

2017-03-15 10:32:05 2697

转载 Mac OS X 10.11.1 安装cocoapods及使用详解

一、什么是CocoaPods每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 i

2016-09-06 17:59:25 281

原创 IOS 动态添加方法

动态添加方法使用场景:一个类方法非常多,一次性加载到内存,比较耗费资源为什么动态添加方法? OC都是懒加载,有些方法可能很久不会调用电商,视频,社交,收费项目:会员机制,要会员才拥有这些功能定义C函数void eat(idself,SEL sel){    NSLog(@"eat--------");}重写

2016-08-23 10:44:47 1960

转载 Runtime 使用场景

一:rumtime原理简单分析runtime是运行时库(Runtime Library),也简称运行时。它是一个主要是C和汇编写的库,对C进行了特殊的处理,将结构体视为对象,将函数视为方法,使得C有了面向对象的能力,从而才创造了Objective-C。这点也可以看出,C是编译时语言,而OC是动态运行时语言,所以在编译阶段,尽管OC中的方法没有实现也不会报错,而C会报错。

2016-08-17 14:35:54 452

原创 sql 关联表查询 LEFT ON INNER ON RIGHT ON

LEFT ON INNER ON RIGHT ON 关联表查询

2016-07-28 13:49:09 3307

原创 alloc init new的区别

初始化一个对象:NSString *string=[NSString alloc];//开辟一个内存空间,并把地址返回给指针NSLog(@"string=%p",string); // string=0x7fb32ae01880string=[string init];//初始化NSLog(@"string=%p",string);//strin

2016-06-28 18:56:21 499

原创 数组下标从0开始

数组下标 偏移量

2016-06-21 16:19:20 1431

原创 iOS kvo 底层实现原理

KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用。这是怎么实现的呢?其实这都是通过Objective-C强大的运行时(runtime)实现的。当你第一次观察某个object 时,runtime会创建一个新的继承原

2016-06-15 14:43:26 597

原创 IOS 第三方管理库管理 CocoaPods

第一步:安装CocoaPods是跑在Ruby的软件,安装可能需要几分钟,打开你的终端输入:sudo gem install cocoapods如果成功 会有一个 Successfully installed cocoaPods的提示 ,然后输入pod setup如果显示Ruby环境不够新,你的机子就跟我的机子一样老,来升级吧sudo gem

2016-05-24 13:50:13 192

原创 iOS nil Nil NULL NSNull的区别

nil Nil NULL NSNull的区别:nil:指向一个对象的空指针; NSObject *obj = nil;Nil:指向一个类的空指针; Class class = Nil;NULL:指向其他类型(基本类型、C类型)的空指针;int number = NULL;NSNull:通常表示集合的空值;[NSNull null] 通常可以作为一个数组的占位符

2016-05-24 11:49:28 244

原创 Category 动态添加属性

了解OC的都应该知道,在一般情况下,我们是不能向Category中添加属性的,只能添加方法,但有些情况向,我们确实需要向Category中添加属性,而且很多系统的API也有一些在Category添加属性的情况。iOS运行时机制简介iOS运行时机制,简单来说,就是苹果给开发这提供的一套在运行时动态创建类、添加属性/方法(不止这些,还有一些其他功能)的API,它是一套纯

2016-04-24 09:36:49 553

原创 XMPP 通讯原语

XMPP通信原语有3种:message、presence和iq。1.1 message message是一种基本推送消息方法,它不要求响应。主要用于IM、groupChat、alert和notification之类的应用中。 主要 属性如下: 1.1.1  type属性,它主要有5种类型: normal:类似于email,主要特点是不要求响应; ch

2016-04-05 17:28:47 481

原创 HTTP 请求

1、完整HTTP请求与响应包含的必要元素2、HTTP不同版本之间的差异3、HTTP、Socket、TCP的区别(易混)一、HTTP 协议HTTP本质上是一种协议,全称是Hypertext Transfer Protocol,即超文本传输协议。从名字上可以看出该协议用于规定客户端与服务端之间的传输规则,所传输的内容不局限于文本(其实可以传输任意类型的数据)。二

2016-03-29 15:22:54 568

转载 IOS多线程开发其实很简单

iOS多线程在iOS中每个进程启动后都会建立一个主线程(UI线程),这个线程是其他线程的父线程。由于在iOS中除了主线程,其他子线程是独立于Cocoa Touch的,所以只有主线程可以更新UI界面(新版iOS中,使用其他线程更新UI可能也能成功,但是不推荐)。iOS中多线程使用并不复杂,关键是如何控制好各个线程的执行顺序、处理好资源竞争问题。常用的多线程开发有三种方式:1.NSTh

2016-03-27 11:42:06 676

原创 用keychain(钥匙串)保存用户名和密码

通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效,数据还在。使用苹果官方发布的KeychainItemWrapper或者SFHFKeychainUtils很方便,后来看到 iphone使用keychain来存取用户

2016-03-24 12:57:24 1040

转载 iOS 宏(define)与常量(const)的正确使用

在iOS开发中,经常用到宏定义,或用const修饰一些数据类型,经常有开发者不知怎么正确使用,导致项目中乱用宏与const修饰你能区分下面的吗?知道什么时候用吗?#define HSCoder @"汉斯哈哈哈"NSString *HSCoder = @"汉斯哈哈哈";extern NSString *HSCoder;e

2016-03-22 13:31:33 262

原创 objective-c static 与 extern 的用法

static——编译时就可以确定其值在objective-c中,需要在.m文件里面定义个static变量来表示全局变量(在objective-c中,static变量只是在编译时候进行初始化,对于static变量,无论是定义在方法体里面 还是在方法体外面其作用域都一样)在我们经常使用的UITableViewController里面,在定义UITableCellView的时

2016-03-22 11:21:45 742

原创 iOS开发中 NSRunloop 与NSTimer的问题

我们在使用NSTimer的时候,可能会接触到runloop的概念,下面是一个简单的例子: 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 // Do any additional setup after loading the view, typically from a nib. 5 NSTimer

2016-03-12 10:01:42 259

原创 Objective-C总Runtime的 消息机制

RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数( C语言的函数调用请看这里 )。编译完成之后直接顺序执行,无任何二义性。OC的函数调用成为消息发送。属于动态调用过程。在编译的时候并不能决定真正调用哪个函数(事实证明,在编 译阶段,OC可以调用任何函数,即使这个函数并未实现,只要申明过就不会报错。而C语言在编译阶

2016-03-11 14:46:16 176

原创 Mac OS原来自带了apache,基本用法总结

环境:macbook air os x 10.9.5找到apache藏身之所系统默认是隐藏apache安装目录的,但我们可以通过“命令行”或者“文件夹前往”的方式找到它。它是安装在系统的私有目录下,也就是/private/etc下面,因为它是隐藏的,所以我们无法通过界面找到它。 ps:/ect目录是mac os 系统存放系统配置信息的地方,里面都是xxx.conf的配置文件。 

2016-03-10 17:10:01 306

转载 lazy懒加载(延迟加载)UITableView

http://blog.csdn.net/hmt20130412/article/details/32173215

2016-03-08 17:17:13 209

原创 UITableView滚动性能优化

如何提高TableView的性能1、重用cell:申请内存是需要时间的,特别是在一段时间内频繁的申请内存会造成很大的开销。而且TableView的布局大部分情况下cell布局是一样的,这个时候可以通过重用机制来提高性能呢。2、避免content重新布局:尽量避免重用cell时对cell布局,一般在创建cell的时候就已经布局好。3、直接重载subView的drawRect方法:当定制c

2016-03-08 16:33:17 260

原创 CocoaPods的安装使用及配置

1、升级Ruby环境终端输入:gem update –system 此时会出现 ERROR: While executing gem … (Gem::FilePermissionError) You don‘t have write permissions for the /Library/Ruby/Gems/2.0.0 directory. sudo gem update

2016-03-08 16:14:00 213

原创 HTML DOM

HTML DOM (文档对象模型)当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。HTML DOM 树通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。JavaScript 能够改变页面中的所有 HTML 元素JavaScript

2016-03-06 17:49:07 183

转载 JSPatch - 动态更新iOS APP

JSPatch是最近业余做的项目,只需在项目中引入极小的引擎,就可以使用JavaScript调用任何Objective-C的原生接口,获得脚本语言的能力:动态更新APP,替换项目原生代码修复bug。原理JSPatch 的基本原理就是:JS 传递字符串给 OC,OC 通过 Runtime 接口调用和替换 OC 方法。这是最基础的原理,实际实现过程还有很多怪要打,接下来看看具体是怎样实

2016-03-06 17:35:32 231

转载 sublime text 2 前端编码神器-快捷键与使用技巧介绍

代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大、灵活的编辑器,相信你和我一样,都不会例外。如果说“神器”是我能给予一款软件最高的评价,那么我很乐意为它封上这么一个称号。sublime text 2(以下简称ST2)小巧绿色且速度非常快,跨平台支持Win/Mac/Linux,支持32与64位

2016-03-06 17:34:26 295

原创 过年回来,电脑上所有证书都失效了

解决方法:解决方法: 1. 下载https://developer.apple.com/certificationauthority/AppleWWDRCA.cer的证书,然后双击安装。 2. 在导航栏那边,显示-显示已过期的证书  3. 点击 “登录”,并且选择 “所有项目” ,并在搜索栏下输入 apple w,其中有一个是无效的,删除即可 删除打叉的那个

2016-03-06 17:32:49 470

原创 iOS Xcode工程目录的 folder 和 group的区别(蓝色和黄色文件夹的区别)

XCode工程目录里面,有时你会发现2个不同颜色的文件夹,一种是蓝色的,一种是黄色的,最常见的是黄色的,我也是最近学习html5的时候,发现还有蓝色的文件夹呢,来上图看下吧 上图所示,蓝色的是folder 黄色的是group。 那么它们有什么区别呢?1. group 和 folder的区别group 一般只在你的工程中是文件夹的形式,但是在本地的目录

2016-03-06 17:30:16 225

空空如也

空空如也

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

TA关注的人

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