自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(241)
  • 资源 (7)
  • 收藏
  • 关注

原创 iOS开发之layoutSubviews的作用和调用机制

一、定义在UIView里面有一个方法layoutSubviews,这个方法定义如下 - (void)layoutSubviews; // override point. called by layoutIfNeeded automatically. As of iOS 6.0, when constraints-based layout is used the base implementa

2016-06-06 10:49:19 9963

原创 iOS Grand Central Dispatch(GCD)

一、Grand Central Dispatch(GCD)概要1、什么是GCDGrand Central Dispatch(GCD)是异步执行任务的技术之一。 GCD用我们难以置信的非常简洁的记述方法,实现了极为复杂繁琐的多线程编程。 例如:dispatch_async(queue, ^{ //长时间处理 //例如AR用动画识别 //例如数据库访问

2016-05-27 11:36:06 3263

原创 ARC和非ARC文件混编

在编程过程中,我们会用到很多各种各样的他人封装的第三方代码,但是有很多第三方都是在非ARC情况下运行的,当你使用第三方编译时出现和下图类似的错误,就说明该第三方是非ARC的,需要进行一些配置。解决方法:苹果文档Transitioning to ARC Release Notes有一种解决办法为: Use Compiler Flags to Enable and Disable ARC

2016-05-25 13:58:55 545

原创 iOS block

一、Blocks概要Blocks是C语言的扩充功能:带有自动变量(局部变量)的匿名函数。 顾名思义,所谓的匿名函数就是不带有名称的函数。c语言的标准不允许存在这样的函数。例如:int func (int count);int resule = func(10);如果想使用函数指针来代替直接调用函数,那么似乎不用知道函数名也能够使用该函数int func (int count);int (*fu

2016-05-23 21:30:15 3846

原创 iOS 自动引用计数

本文来自Objective-C高级编程(iOS与OS X多线程和内存管理)一、什么是自动引用计数自动引用计数(ARC,Automatic Reference Counting)是指内存管理中对引用采取自动计数的技术;苹果官方说明: 在Objective-C中采用Automatic Reference Counting(ARC)机制,让编译器来进行内存管理。在新一代Apple LLVM编译器中设置

2016-05-19 16:19:21 5255

原创 iOS runtime之Method Swizzling(四)

一、Method Swizzling是什么Method Swizzling是改变一个selector的实际实现的技术。 在Objective-C中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字。利用Objective-C的动态特性,可以实现在运行时偷换selector对应的方法实现,达到给方法挂钩的目的; 之前所说的消息转发虽然功能强大,但需要我们了解并且能

2016-04-15 15:53:17 560

原创 iOS runtime之消息传递(三)

一、runtime中的消息1、什么是消息①、message(消息) message的具体定义很难说,因为并没有真正的代码描述,简单的讲message 是一种抽象,包括了函数名+参数列表,他并没有实际的实体存在。②、method(方法) method是真正的存在的代码。如:- (int)meaning { return 42; }③、selector(方法选择器) selector 通过S

2016-04-14 17:53:11 3228

原创 iOS runtime之类和对象(二)

一、类与对象基础数据结构1、ClassObjective-C类是由Class类型来表示的,它实际上是一个指向objc_class结构体的指针。它的定义如下:typedef struct objc_class *Class;objc_class在runtime.h定义如下:struct objc_class { Class isa OBJC_ISA_AVAILABILITY;// metac

2016-04-11 17:58:37 2479

原创 iOS runtime之元素认知(一)

一、什么是runtime简而言之,Objective-C Runtime是一个将C语言转化为面向对象语言的扩展。 我们将C++和Objective进行对比,虽然C++和Objective-C都是在C的基础上加入面向对象的特性扩充而成的程序设计语言,但二者实现的机制差异很大。C++是基于静态类型,而Objective-C是基于动态运行时类型。也就是说用C++编写的程序编译时就直接编译成了可令机器读懂

2016-04-10 00:12:53 796

原创 三、Instrument之Allocations工具(内存分配)

一、Allocations检测工具二、Allocations设置Xocde 7.0.1 右下角面板,您可在这里修改您想要查看的分配类型的相关设置。除了确保 Created & Persistent 气泡已被选中之外,没有其他什么需要提前做的事。 三、运行Allocations检测工具该instrument工具捕获以下信息:1、Category(类别)通常是一个 Core Foundation 对

2016-04-08 16:09:00 4849

原创 二、Instrument之Leaks工具

一、Instruments打开Instruments调试工具控制栏,三个方法: (1)、按下Command + I打开Instrument; (2)、Xcode->product->profile; (3)、Xcode->Open Developer Tool->Instrument二、Leaks选择leaks工具,如下图: 三、设置leaks设置Leaks内选项 选择Leaks,

2016-04-07 13:54:55 1725

原创 一、Instrument之Core Animation工具

一、Instrument两个方法: (1)、按下Command + I打开Instrument; (2)、xcode->product->profile;二、Core Animation工具1、界面2、简介注意这个调试必须使用真机,点击左上角的红色圆圈就会开始录制我们需要了解两个两个区域: 1、这里记录了实时的fps数值,有些地方是0是因为屏幕没有滑动; 2、调试选项; ps:有过游戏经

2016-04-06 17:42:03 4993

原创 iOS 9:六、URL scheme(白名单)

URL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来。在iOS8并没有做过多限制,但是iOS9需要将你要在外部调用的URL scheme列为白名单,才可以完成跳转如果iOS9没做适配 会报如下错误 canOpenURL: failed for URL : “mqzone://qqapp” - error: “This app is not allowed

2016-04-05 10:42:51 3711

原创 iOS 9:五、字体

iOS8中,字体是 Helvetica,中文的字体有点类似于“华文细黑”。只是苹果手机自带渲染,所以看上去可能比普通的华文细黑要美观。 iOS9中,中文系统字体变为了专为中国设计的“苹方” 有点类似于一种word字体“幼圆”。字体有轻微的加粗效果,并且最关键的是字体间隙变大了! 所以很多原本写死了width的label可能会出现“…”的情况。 所以为了在界面显示上不出错,就算是固定长度的文字也还

2016-04-05 10:30:45 651

原创 iOS 9:四、设置信任

这一条只和企业级应用或inhouse 有关,和AppStore渠道的应用无关。在iOS8只是弹出一个窗问你是否需要让手机信任这个应用,但是在iOS9却直接禁止,如果真的想信任需要自己去手动开启。类似于Mac系统从未知开发者处下载的dmg直接打不开,然后要到系统偏好设置的安全性与隐私手动打开。用户需要去 设置---》通用---》描述文件 里面自行添加信任。这种问题的处理方法也就两种:1.提前周知暂时

2016-04-05 10:28:46 682

原创 iOS 9:三、Bitcode

bitcode的理解应该是把程序编译成的一种过渡代码,然后苹果再把这个过渡代码编译成可执行的程序。bitcode也允许苹果在后期重新优化我们程序的二进制文件,有类似于App瘦身的思想。 用了xcode7的编译器编译之前没问题的项目可能会出现下列报错。 XXXX’ does not contain bitcode. You must rebuild it with bitcode en

2016-02-19 11:46:28 519

原创 iOS 9:二、后台定位

注意:请求用户权限,分为:①、只在前台开启定位;②、在后台也可定位。 建议只请求一个,如果两个都需要,只会请求②;早先,iOS 8在使用CoreLocation定位的时候做了如下修改(1)、定位授权的方法,CLLocationManager增加了如下两个方法:①、始终允许访问位置信息- (void)requestAlwaysAuthorization __OSX_AVAILABLE_STA

2016-02-19 10:56:13 533

原创 iOS 9:一、网络适配-Https

iOS 9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL。采用TLS 1.2协议,目的是强制增强数据访问安全,而且系统Foundation框架下的相关网络请求,将不再默认使用Http等不安全的网络协议,而默认采用TLS 1.2。服务器因此需要更新,以解析相关数据。如果不更新,可通过在Info.plist中声明,倒退回不安全的网络请求。 解决方案如

2016-02-19 10:51:34 1039

原创 iOS 8:二、WKWebView VS UIWebView

一、UIWebView 通过使用UIWebView控件,可以实现一个内置的浏览器(类似于Safari),而且可以直接将这个浏览器内嵌到应用的任意位置;UIWebView直接继承了UIView基类。1、UIWebView常用属性(1)、 @property (nonatomic, assign) id < UIWebViewDelegate > delegate;设置遵循UIWebViewDe

2016-02-01 11:05:04 3674

原创 willMoveToParentViewController && didMoveToParentViewController

1、 @property(nonatomic,readonly) NSArray *childViewControllers NS_AVAILABLE_IOS(5_0); 获取所有的子视图控制器2、 - (void)addChildViewController:(UIViewController *)childController NS_AVAILABLE_IOS(5_0); 向视图控制器容器中

2016-01-27 11:19:14 2068

原创 iOS 8:四、UISearchController VS UISearchBar and UISearchDisplayController

一、UISearchBar1、基本属性(1)、@property(nonatomic) UIBarStyle barStyle;控件的样式,包括如下枚举:typedef NS_ENUM(NSInteger, UIBarStyle) { UIBarStyleDefault = 0, UIBarStyleBlack = 1, UIBar

2016-01-24 22:55:24 1340

原创 iOS 8: 三、UIAlertController  VS  UIAlertView and UIActionSheet

UIAlertView和UIActionSheet都是iOS系统自带的弹出式对话框。当UIAlertView或UIActionSheet显示出来时,用户无法与应用界面中的其他控件交互。UIAlertView与UIActionSheet的最大区别在于:UIAlertView表现为显示在屏幕中央的弹出警告框;UIActionSheet则表现为显示在底部的按钮列表;一、UIAlertView1、UIAl

2016-01-24 22:43:43 835

原创 CATextLayer

用于渲染一个无格式或属性文本字符一、CATextLayer属性1、 @property(copy) id string; 文本呈现,可以是一个NSString或者NSAttributedString;默认为nil2、 @property CFTypeRef font; 字体使用,可能是一个CTFontRef,一个CGFontRef或者一个字符串命名体,默认为Helvetica字体;仅当str

2016-01-16 01:19:05 6010 1

原创 iOS 关于颜色的库 - Wonderful

Wonderful这个库主要是与UIColor息息相连,其中一共包含五个子文件,UIColor+Wonderful,UIColor+Separate,SXColorGradientView,SXMarquee,SXColorLabel.h。分别对应颜色扩展,色彩分离,颜色渐变,跑马灯和字体颜色大小不一5种主要功能项目地址:iOS 颜色库一、UIColor+Wonderful1、这个分类提供了10

2016-01-10 02:37:02 1328

原创 CALayer图层

一、简介 CALayer包含再QuartzCore框架中,这是一个跨平台的框架,即可以用在iOS中又可以用在Mac OS X中。再使用Core Aniamtion开发动画本质就是将CALayer中的内容转化为位图从而供硬件操作,所以要熟练掌握动画操作必须先来熟悉CALayer。在使用Quartz 2D绘图时已经用到了CALayer,当利用drawRect:方法绘图的本质就是绘制到UIView的

2016-01-10 00:25:57 1006

原创 颜色(三):CIColor

前言 CIColor主要是用于和Core Image框架中其他类,比如CIFilter,CIContext以及CIImage。CIColor中的颜色值范围是0.0~1.0之间,0.0代表该颜色分量为最小值,1.0代表该颜色分量分最大值。其中alpha值的范围也是0.0到1.0之间,0.0代表全透明,1.0代表完全不透明,同时CIColor的颜色分量通常都是没有乘以alpha值。一、创建CICo

2016-01-09 16:31:48 1115

原创 颜色(二):CGColor

前言 CGColor主要用于CoreGraphics框架之中,CGColor其实是个结构体,而我们通常再使用CGColor的时候使用的是他的引用类CGColorRef。CGColor主要由CGColorSpace和Color Components两个部分组成,同样的颜色组成,如果颜色空间不同的话,解析出来的结构可能会有所不同。这就像我们在处理图片数据的时候,如果把RGBA格式当成BGRA格式处理

2016-01-09 04:01:15 2824

原创 颜色(一):UIColor

一、创建颜色的方法1、 + (UIColor *)colorWithWhite:(CGFloat)white alpha:(CGFloat)alpha;参数: white:范围为0~1,代表黑~白,中间过度灰色; alpha:透明度,0~1,0为完全透明,1为不透明;2、 + (UIColor *)colorWithHue:(CGFloat)hue saturation:(CGFl

2016-01-09 02:02:41 3590

原创 iOS 宏定义的使用与规范

宏定义在很多方面都会使用,例如定义高度、判断iOS系统、工具类,还有诸如文件路径、服务端api接口文档。为了对宏能够快速定位和了解其功能,我们最好在定义的时候将其放入特定的头文件中。一、定义尺寸类的宏DimensMacros.h//状态栏高度#define STATUS_BAR_HEIGHT 20//NavBar高度#define NAVIGATION_BAR_HEIGHT 44//状态栏

2015-12-30 21:07:44 7082

原创 iOS 编码的一些规范

1、实例变量instance variable,最好带上前缀下划线,例如@interface Person : NSObject{ NSString* _name; NSInteger _age;}@end有时候在.m文件中也会用到实例变量instance variable,这时候也带上前缀下划线@interface Person(){ NSNumber* _sala

2015-12-30 20:39:14 408

原创 nil,Nil,NULL和NSNull

一、nilnil是Objective-C的字面空值,对应id类型的对象; 定义一个实例为空,指向oc中对象的空指针; 我们给对象赋值时一般会使用object = nil,表示我想把这个对象释放掉; 判断: if (object == nil) { } if (object) { } 注意:如果一个对象为nil,数组或字典添加其为新元素时,会引起崩溃;二、Niln

2015-12-30 18:15:20 452

原创 copy和mutableCopy

//CXToModalVC.h#import <UIKit/UIKit.h>@class CXToModalVC;@protocol CXToModalVCDelegate <NSObject>-(void)dismissViewController:(CXToModalVC *)mcv;@end@interface CXToModalVC : UIViewController@property(non

2015-12-29 00:46:01 503

原创 NSString与Unicode

NSString的API中有两个方法:(1)、rangeOfString:(2)、rangeOfString:option:举个例子: 字符串中有一个”:”结果就是找不到,这样就导致了代码的crash。然后看如下: 打印一下length,竟然是2。那为啥找不到呢.换一种方式:Unicode对于组成有两种形式:合成形式与分解形式。而NSString的rangeOfString,这个api对此

2015-12-27 01:48:44 501

原创 iOS废弃的API:NS_AVAILABEL_IOS and NS_DEPRECATED_IOS and __attribute__((deprecated))

一、NS_AVAILABEL_IOS例如:- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);该NS_AVAILABLE_IOS(5_0)告诉

2015-12-27 01:45:01 5088 1

原创 正则表达式

前言:在表达验证中,我们经常会使用到正则,应为我们需要用于来判断用户输入的字符是否为合法的,如果是不合法的,那么应该提示用户输入错误,并不让提交至服务器。我们也可以通过正则表达式,从用户输入的字符串中过滤并获取我们想要的特定部分。总而言之,正则表达式是非常强大的。一、谓词(NSPredicate)创建正则表达式使用它来判断用户输入的字符串是否为合法的:- (void)viewDidLoad {

2015-12-27 01:40:06 1093

原创 获取唯一标识符

一、iOS不同版本获取唯一标识符的方法比较1、iOS 5:UDID(Unique Device Identifier)iOS 2.0版本以后UIDevice提供一个获取设备唯一标识符的方法uniqueIdentifier,通过该方法我们可以获取设备的序列号,这个也是目前为止唯一可以确认唯一的标识符。但是,因为该唯一标识符与手机一一对应,苹果觉得可能会泄露用户隐私,所以在iOS 5.o之后该方法就被废

2015-12-27 01:31:54 4837

原创 SDWebImage最新的使用

2015年8月21日SDWebImage的使用一、下载SDWebImage,导入工程。github托管地址https://github.com/rs/SDWebImage二、导入头文件#import "UIImageView+WebCache.h"三、图片缓存方法(1)、- (void)setImageWithURL:(NSURL *)url;例如:[imageView setImage

2015-12-27 01:23:56 1246

原创 NSPredicate(正则表达式核心类)

一、定义谓词:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。NSpredicate是一个Foundation类,它指定数据被获取或者过滤的方式。它的查询语言就像SQL的WHERE和正则表达式的交叉一样,提供了具有表现力的,自然语言界面来定义一个集合被搜索的逻辑条件。NSPredicate对象来代表谓词,它有三个类:NSCompar

2015-12-27 01:11:09 1712

原创 添加字体

1、下载资源:后缀为.ttf或odf 例如:http://www.webpagepublicity.com/free-fonts.html2、把字体库导入到工程的resouce中;3、在工程的Info.plist文件中新建一行(Add Row),添加Key:Fonts provided by application,类型为Array或Dictionary;然后新建一个键值对,key为:Item

2015-12-27 01:03:06 462

原创 NSAttributedString

一、字符属性字符属性:字符属性可以应用于NSAttributedString中(1)、NSString *const NSFontAttributeName;(字体)(2)、NSString *const NSParagraphStyleAttributeName;(段落)(3)、NSString *const NSForegroundColorAttributeName;(字体颜色)(4)

2015-12-27 00:59:07 1508

全国城市商圈经纬度MYSQL版

全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版,全国城市商圈经纬度MYSQL版

2024-05-08

全国城市商圈经纬度MYSQL版

全国城市商圈经纬度MYSQL版

2022-12-01

iOS-组件化管理.zip

iOS组件化管理

2022-01-04

设计原则(责任链,桥接,适配器,单例,命令)

设计原则(责任链,桥接,适配器,单例,命令) + 六大原则

2021-05-12

runtime 818.2

runtime 818.2版本

2021-04-28

RuntimeObject.zip

Objective-C Runtime是一个将C语言转化为面向对象语言的扩展。 我们将C++和Objective进行对比,虽然C++和Objective-C都是在C的基础上加入面向对象的特性扩充而成的程序设计语言,但二者实现的机制差异很大。C++是基于静态类型,而Objective-C是基于动态运行时类型。也就是说用C++编写的程序编译时就直接编译成了可令机器读懂的机器语言;用Objective-C编写的程序不能直接编译成可令机器读懂的机器语言,而是在程序运行的时候,通过Runtime把程序转为可令机器读懂的机器语言。Runtime是Objective不可缺少的重要一部分。

2020-09-04

RuntimeObject.zip

Objective-C Runtime是一个将C语言转化为面向对象语言的扩展。 我们将C++和Objective进行对比,虽然C++和Objective-C都是在C的基础上加入面向对象的特性扩充而成的程序设计语言,但二者实现的机制差异很大。C++是基于静态类型,而Objective-C是基于动态运行时类型。也就是说用C++编写的程序编译时就直接编译成了可令机器读懂的机器语言;用Objective-C编写的程序不能直接编译成可令机器读懂的机器语言,而是在程序运行的时候,通过Runtime把程序转为可令机器读懂的机器语言。Runtime是Objective不可缺少的重要一部分。

2020-09-04

iOS-KVC的实现

KVC全称是Key Value Coding(键值编码),是一个基于NSKeyValueCoding非正式协议实现的机制,它可以直接通过key值对对象的属性进行存取操作,而不需通过调用明确的存取方法。这样就可以在运行时动态在访问和修改对象的属性,而不是在编译时确定。

2020-08-28

iOS-KVO.zip

KVO全称是Key Value Observing,是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。由于KVO的实现机制,只针对属性才会发生作用,一般继承自NSObject的对象都默认支持KVO。

2020-08-25

空空如也

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

TA关注的人

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