自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 PCH文件的添加过程

在Xcode6之前,新建一个工程的时候,系统会帮我们自动新建一个以工程名为名字的pch (precompile header)文件,在开发过程中,可以将那些整个工程都广泛使用的头文件包含在该文件下,编译器就会自动的将pch文件中的头文件添加到所有的源文件中去,这样在需要使用相关类的时候不需要使用import就可以直接使用头文件中的内容,很大程度上带来了编程的便利性,但潜在的也带来了一些问题,这也是

2017-09-05 13:36:45 331

转载 Xcode 快速开发 代码块

Xcode的代码片段(Code Snippets)创建自定义的代码片段,当你重用这些代码片段时,会给你带来很大的方便。常用的:1.strong:@property (nonatomic,strong) *;2.weak:@property (nonatomic,weak) *;3.copy:@property (nonatomic,copy) NSStrin

2017-09-04 21:47:25 276

转载 iOS多线程中的锁

锁的类别:互斥锁,递归锁,条件锁,自旋锁等锁的实现方式:NSLock,NSRecursiveLock, NSConditionLock,@synchronized,GCD的信号量等下面说一下常用的几种锁:1.@synchronized:对象级别所,互斥锁,性能较差不推荐使用@synchronized(这里添加一个OC对象,一般使用self) {       

2017-07-31 11:20:58 299

转载 iOS程序中的内存分配 栈区 堆区 全局区(静态区) 常量区 方法区

iOS程序中的内存分配 栈区堆区全局区(转)在计算机系统中,运行的应用程序的数据都是保存在内存中的,不同类型的数据,保存的内存区域不同。一、内存分区栈区(stack) 由编译器自动分配并释放,存放函数的参数值,局部变量等。栈是系统数据结构,对应线程/进程是唯一的。优点是快速高效,缺点时有限制,数据不灵活。[先进后出]栈空间分静态分配 和动态分配两种。

2017-04-19 10:20:18 2600

原创 iOS关键字

一、const与宏的区别(面试题):const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。编译时刻:宏是预编译(编译之前处理),const是编译阶段。编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误。宏的好处:宏能定义一些函数,方法。 const不能。宏的坏处:使用大量宏,容易造成编译时间久,每次

2017-04-19 09:00:15 431

原创 Runtime简介

一、runtime简介RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数。对于OC的函数,属于动态调用过程,在编译的时候并不能决定真正调用哪个函数,只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。事实证明:在编译阶段,OC可以调用任何函数,即使这个函数并未实现,只要声明过

2017-04-18 21:03:27 275

转载 ipa打包的四种方法

总结一下,目前.app包转为.ipa包的方法有以下几种:1、Apple推荐的方式,即实用xcode的archive功能Xcode菜单栏->Product->Archive->三选一,一般选后两个。局限性:个人开发一般采用这种方法,但是当一个证书多人使用时就稍显麻烦。一般多人开发时都是采用provisioning profile+P12文件来进行真机调试。上述方法在最后导出i

2017-04-12 22:40:53 1805

原创 XMPP

一,Socket网络模型OSI(Open System Interconnection开放系统互联模型)为了全家计算机之间可以通讯才发明的这个模型模型如下(其中每一层都有每一层协议)1.应用层:解析的东西显示到这上面2.表示层:对数据的解析3.会话层:建立连接其中Socket是来到会话层的4.传输层:定义传输层协议TCP UDP5

2017-03-29 21:55:13 267

原创 description方法

description基本概念1.NSLog(@"%@", objectA);这会自动调用objectA的description方法来输出ObjectA的描述信息.2.description方法默认返回对象的描述信息(默认实现是返回类名和对象的内存地址)3.description方法是基类NSObject 所带的方法,因为其默认实现是返回类名和对象的内存地址, 这样

2017-03-26 17:49:32 262

转载 MJExtension的使用方法

1.简单的字典 --> 模型核心代码 mj_objectWithKeyValues:typedef enum { SexMale, SexFemale} Sex;@interface User : NSObject@property (copy, nonatomic) NSString *name;/* 姓名 */@property (copy, nonatomic) NS

2017-03-14 10:50:19 4572

原创 Oauth和Oauth2.0的区别

一、       Oauth的概念Oauth的官方简介是:An open protocol to allow secure API authorization in a simple andstandard method from web, mobile and desktop applications.随着大量开放平台的出现,建立在开放平台之上的各种第三方应用也在大量冒出,出对安全性

2017-03-13 18:23:02 2365

原创 KVC和KVO的使用

一,KVCKVC是Cocoa的一个大招,最主要的用处就是可以随意的修改一个对象的属性和成员变量,并且私有的也可以修改  forKeyPath包含了forKey的功能,以后使用forKeyPath就可以了  forKeyPath中可以利用.运算符, 就可以一层一层往下查找对象的属性#import #import "Person.h"#imp

2017-03-13 15:48:37 198

原创 cocoapods使用教程

:如何下载和安装CocoaPods?1.用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:$ gem sources --remove https://rubygems.org///等有反应之后再敲入以下命令$ gem sources -a https://ruby.taobao.org/     (注意是https)为了

2017-03-10 13:19:29 233

原创 tableview的优化问题

1.使⽤用不透明视图。不透明的视图可以极⼤大地提⾼高渲染的速度。因此如⾮非必要,可以将 table cell及其⼦子视图的opaque属性设为YES(默认值)。其中的特例包括背景⾊色,它的 alpha值应该为1(例如不要使⽤用 clearColor);图像的alpha值也应该为1,或者在画图时设为不透明。2. 不要重复创建不必要的table cell。

2017-03-10 13:17:23 217

原创 IOS开发知识概览

2017-03-10 12:55:43 178

原创 自定义控件的方式

#pragma mark 自定义控件的方法#pragma mark 纯代码自定义控件使用纯代码的方式一般来说我们的自定义类继承自UIView,首先在initWithFrame:方法中将需要的子控件加入view中。注意,这里只是加入到view中,并没有设置各个子控件的尺寸。为什么要在initWithFrame:方法而不是在init方法?

2017-03-10 12:54:17 305

原创 runloop和runtime的区别

一.RunLoop:       Runloop是事件接收和分发机制的一个实现。       Runloop提供了一种异步执行代码的机制,不能并行执行任务。       在主队列中,Main RunLoop直接配合任务的执行,负责处理UI事件、定时器以及其他内核相关事件。(1).RunLoop的主要目的:

2017-03-10 12:52:59 2369

原创 UIView的动画

iOS开发-UIView之动画效果的实现方法(合集)前言:在开发APP中,我们会经常使用到动画效果。使用动画可以让我们的APP更酷更炫,最重要的是优化用户体验,但取决于动画的质量。像QQ、微信、新浪微博等APP,动画效果就很好了,至少我很喜欢它们的动画,让我使用起来感觉很顺畅,心情很开朗。本文会介绍UIView效果的实现方法,非核心动画。一、使用

2017-03-10 12:44:51 337

原创 setNeedsDisplay和setNeedsLayout

1,UIView的setNeedsDisplay和setNeedsLayout方法首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到  UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews,就可以  处理子视

2017-03-10 12:39:44 196

原创 NSLog自定义

#ifdef __OBJC__#import #import #import "UIView+Extension.h"#import "UIBarButtonItem+Extension.h"#import "UIWindow+Extension.h"#import "NSDate+Extension.h"#import "NSString+

2017-03-10 12:37:44 335

原创 layoutSubviews

ios layout机制相关方法- (CGSize)sizeThatFits:(CGSize)size- (void)sizeToFit——————-- (void)layoutSubviews- (void)layoutIfNeeded- (void)setNeedsLayout——————–-

2017-03-10 12:34:38 152

原创 interactivePopGestureRecognizer

苹果一直都在人机交互中尽力做到极致,在iOS7中,新增加了一个小小的功能,也就是这个api:self.navigationController.interactivePopGestureRecognizer.enabled = YES;这个api功能就是在NavigationController堆栈内的UIViewController可以支持右滑手势,也就是不用点击右上角的返回按钮,轻

2017-03-10 12:05:42 836

原创 initialize方法和init区别详解

[置顶] initialize方法和init区别详解 分类: IOS开发2015-08-2211:31205人阅读评论(0)收藏举报  原创帖子,转载请注明出处:http://blog.csdn.net/sbvfhp/article/details/47857851  1、定义Father类  [objc] view

2017-03-10 12:04:47 3987 1

原创 CGAffineTransform的使用大概

iOS方法类:CGAffineTransform的使用大概CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放、旋转和平移操作:另称放射变换矩阵,可参照线性代数的矩阵实现方式0.0这里附上的CGAffineTransform官方文档:https://de

2017-03-10 12:00:12 211

原创 automaticallyAdjustsScrollViewInsets属性

automaticallyAdjustsScrollViewInsets属性最近遇到一个问题是这样的,App一般自己都会有一个UINavigationController,顶部TableView如果有tableHeaderView如果设置起始位置是(0,0)是在导航栏的下面的,为了更好地UI希望从屏幕的(0,0)开始,就遇到了上面的这个问题,简单的看一下效果:

2017-03-10 11:58:44 302

原创 坐标系的转换

转换坐标系就是本来中间那个家伙是以左边那个家伙为坐标系的,现在变为以右边那个家伙为坐标系,它的坐标变为多少,其实就是中间那个控件以右边那个控件为坐标的位置// 蓝色UIView *blue = [[UIView alloc] init];blue.backgroundColor = [UIColor blueColor];blue.frame = CGRectMak

2017-03-10 11:57:48 222

原创 图片压缩问题

最近做论坛功能,发帖的时候需要用到从相册中选取图片然后上传,由于每次上传图片的最大数量为9张,所以需要对图片进行压缩。开始时用了以前经常用的压缩的方法:[objc] view plain copy//压缩图片质量+(UIImage *)reduceImage:(UIImage *)image percent:(float)percent{    NSData

2017-03-10 11:55:59 182

原创 UIImageView的缓存问题

UIImageView *imageView = [[UIImageView alloc] init];imageView.image = [UIImage imageNamed:@"avatar_vip"];//    NSString *file = [[NSBundle mainBundle] pathForResource:@"avatar_vip@2x" ofType:@

2017-03-10 11:54:47 736

原创 iOS中数据请求

#pragma mark - HTTP协议void HTTP (){#pragma mark ---------- GET,JSON,XML    // 创建一个URL:请求路径    NSString *urlStr = [NSString stringWithFormat:@"http://localhost:8080/MJServer/logi

2017-03-10 11:52:41 328

转载 数据解析JSON/XML

原文链接:http://www.jianshu.com/p/a54d367adb2a除了XML和Json,文中还涉及到的一些知识:第三方类库的使用,获取本地文件内容,网站API使用,GCD多线程编程,不做详细介绍,在代码出现的地方会注明。先安利一波:JsonXML大数据时代,我们需要从网络中获取海量的新鲜的各种信息,就不免要跟着两个家伙打交道,这是两种结构化的数据交

2017-03-10 11:49:19 729

原创 三种遍历方式的区别

for VS for(...in ...)for 的应用范围广基本可以NSArray、NSArray以及C语言的数组等,而for(...in ...)仅限于NSArray、NSArray等for(... in ...)更简洁、效率更高测试代码:  10^7的数组,时间单位秒,精确度毫秒复制代码

2017-03-10 11:37:14 767

原创 内存紧张以及程序进入后台

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{    SDWebImageManager *mgr = [SDWebImageManager sharedManager];    //1.取消下载    [mgr cancelAll];    //2.清除缓存

2017-03-10 11:36:12 254

原创 关于storyboard

//constrain to margins如果你点了constrain to margins,左右会有8个点的空挡,而是从8个点后开始计算约束,而没有点时,已屏幕的0点开始计算。iOS8里加入了layoutMargins属性,如果选中Constrain to margins,则会依照layoutMargins的位置作为起点来进行约束。//update fram

2017-03-10 11:33:34 311

原创 常见的各种命令

如果你实在想尝试命令操作,可参考:显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles -booltrue隐藏隐藏文件:defaults write com.apple.finder AppleShowAllFiles -boolfalse1> 显示隐藏文件夹# 显示隐藏文件

2017-03-10 11:30:21 325

原创 ios中反向传值得几种方法

#pragma mark - 反向传值//1.代理//主动方(第二个界面):1.创建协议及协议方法 2.设置一个代理属性 3.判断代理是否存在以及协议方法时候存在,然后再传值//被动方:1.遵守协议 2.设置代理 3. 实现代理方法@protocol ShowTextDelegate @required-(void)showTex

2017-03-10 11:27:42 2243

原创 开发中遇到的错误

今天调试程序遇到这么一个警告!Local declaration of 'XXX' hides instance variable遇到这种原因,是因为本地变量跟函数参数变量同名。开来,还是要注意变量的命名啊!

2017-03-10 11:20:35 310

原创 OC三大特性(封装继承和多态)以及分类和扩展

一.封装二.继承:子类可以直接复用父类中的成员.子类继承父类所有方法非私有的成员变量以及协议继承时要在.h中声明一下继承具有单根性和传递性继承的根类:大多都继承自 NSObject类,所以在定义一个类时,要继承NSObject类。继承就是代码优化公共部分交给父类例如:(Person是

2017-03-10 11:10:44 320

原创 Block总结

#pragma mark - block的基本使用 只有调用block才会实现block中的代码传入方声明block调用block,接收方实现block对传过来的值进行使用#warining 1.声明block  2.调用block 3.实现block@implementation RootViewController-

2017-03-10 11:06:46 212

原创 ios开发中的几种设计模式

- 单例模式:通过static关键词,声明全局变量。在整个进程运行期间只会被赋值一次。/** static : 修饰变量 1> 修饰全局变量 * 全局变量的作用域仅限于当前文件内部(不加的话别人使用extern关键字就能从其他文件访问这个文件的全局变量了) 2> 修饰局部变量 :  * 能保证局部变量永远只初始化1次,在程序运行过程中,永远只

2017-03-10 11:01:56 248

原创 NSThread GCD NSOperation 三者的用法区别

先看看三种线程的区别#pragma mark - NSThread 自己的笔记线程的基本使用[NSThread detachNewThreadSelector:@selector(threadMain1:) toTarget:self withObject:@(20)];//detach派遣 NSThread *thread2 = [[NSThread al

2017-03-10 10:40:37 1061

空空如也

空空如也

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

TA关注的人

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