自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

遇见更好的自己

从不相信人生可以不劳而获,也许活的用力,却真心诚意绝不敷衍。

  • 博客(118)
  • 资源 (14)
  • 收藏
  • 关注

原创 重新绘制、刷新tableView的cell

重新绘制某行cellCGRect rectInTableView = [tableView rectForRowAtIndexPath:indexPath]; CGRect rect = [tableView convertRect:rectInTableView toView:[tableView superview]]; 一个section刷新NSIndexSet *indexSet=[[N

2017-09-08 14:12:36 1125

转载 请求主线程

在iOS中只有主线程才能立即刷新UI。如果是通过侦听异步消息,触发回调函数,或者调用异步方法,请求刷新UI,都会产生线程阻塞和延迟的问题。正确的做法是回到主线程,方法如下:if ([NSThread isMainThread]) { [self.downloadMapBtn setImage:[UIImage imageNamed:@"download_map.png"] forSt

2017-09-08 14:01:10 231

原创 git stash

git stash备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。git stash pop从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。git stash list显示Git栈内的所有备份,可以利用这个列表

2017-09-08 13:57:21 403

原创 Git submodule添加子项目/库

开发过程中,经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用,而公共代码库的版本管理是个麻烦的事情。git submodule命令就可以解决这个问题。Git归并策略Git归并有两种策略:递归,章鱼。1.递归策略:当分支数只有两个的时候。2.章鱼策略:当分支数大于两个的时候。Git会自动选择归并的方法。3.子树策略:是Git另一种归并方法。(submodule)它可以把另一个子项

2017-09-08 10:51:31 6226

原创 面试题系列(一)

1.进程和线程有什么区别,存在什么联系?进程:在系统中正在运行的一个应用程序,是系统资源分配的基本单位,在内存中有其完备的数据空间和代码空间,拥有完整的虚拟空间地址,一个进程所拥有的数据和变量只属于他自己。线程:进程中相对独立的可执行单元,所以也成为轻量线程,是操作系统进行任务调度的基本单元,他与父进程的其他线程共享进程所拥有的全部代码空间和全局变量,但用于独立的堆栈(局部变量对于线程来说是私有的)

2017-09-05 22:23:52 242

转载 iOS中[super class]为何会输出子类类型?

iOS中[super class]为何会输出子类类型?比如有一个自定义类DetailViewController继承自类UIViewController。那么我们对这个自定义类分别使用[self class]和[super class]将会分别输出如下结果: [self class] DetailViewController [super class]

2017-09-05 14:48:50 220

原创 键盘监听

【监听】#pragma mark - 监听键盘-(void)monitorKeyboard{ //添加监听键盘弹出 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardShow:) name:UIKeyboardWillShowNotification object:ni

2017-09-04 20:48:58 647

原创 循环复用原理图

如图所示

2017-09-03 16:20:08 683

原创 Xib And Storyboard

【Xib】Interface Builder 是用来组织创建应用程序的可视部分(用户界面)。使用它您可以拖放一些定义好的组件(UILabel、UIButton等)到应用程序窗口中,然后设置它们的属性,和应用程序对象建立连接。当您完成了创建视图后将会以(Mac OS工程为.nib,iOS工程为.xib)文件的形式保存起来。 其实xib是从iOS SDK初次面世开始就是捆绑在开发者工具

2017-09-03 16:17:06 306

原创 UICollectionView

【集合视图】UICollectionView是集合视图,是UIScrollView的子类,也非常重要。 【说明】 1、UICollectionView上item的布局依赖一个布局对象 2、也就是说布局对象决定了UICollectionView的items如何显示在界面上, Apple提供了一个最简单的布局对象(UICollectionViewFlowLayout), UICollectio

2017-09-03 16:14:22 210

原创 UINavigationController

【导航控制器】UINavigationController是导航控制器,是一个容器视图控制器, 用于切换具有层次关系的视图,而非同一级视图间的切换。视图控制器之间的切换【说明】导航管理子视图控制器的切换,采用栈数据结构的原理 push—>压栈 把子视图控制器放入导航的子视图控制器数组中【push的时候,内部有对svc指向的对象计数器加1】 pop—>出栈 把子视图控制器从导航的子视

2017-09-03 16:11:37 274

原创 block

block:就是一堆代码块,没有名字的代码块,相当于匿名函数,block就是一种具有匿名功能的内嵌函数,具有参数和返回值 block:对局部变量是只读__ block block某种意义上替代了回调函数或者delegate。这样有利于代码的整合和阅读,不需要到处是实现委托方法了。 代理设计模式 使用block实现委托模式,其优点是会掉的block代码块定义在委托对象函数内部,使代码更为紧凑;

2017-09-03 16:09:12 1394

原创 UITextField收键盘

UITextField是文本输入框,专门用于获取用户输入的文本 1、基本属性方法 2、代理回调方法 3、键盘监听定制 UITextField默认不收键盘 ctrl+command+空格:弹出表情键盘 取消UITextField第一响应,实际上就是收键盘收键盘:1.借助于UIControl来收键盘【点击键盘外侧空白部分就可以收键盘】例子在下面 2.通过UITouc

2017-09-03 16:06:29 525

原创 iOS程序的启动流程

a、UIApplicationMain函数的参数:int main(int argc, char * argv[]) {@autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));}}UIKIT_EXTERN int UIApplication

2017-09-03 16:00:38 396

原创 Xcode快捷操作

a Xcode相关command + 0 【显示/隐藏文件导航栏】 command + alt + ◀️/▶️ 【折叠/展开单一函数】 command + alt + shift + ◀️/▶️ 【折叠/展开所有函数】 command + control + ◀️/▶️ 【向前向后跳转】 command + control + 上/下【切换一个类的声明和实现】

2017-09-03 15:52:25 284

原创 设备和分辨率

常识

2017-09-03 15:48:45 395

原创 super init

【构造方法】1.通常面向对象的语言都有在创建对象的时候,使用构造方法 2.在OC当中,所有init开头的方法,都是要手动调用的,是对类的对象进行初始化,包含两种,有参和无参 self其实就是对象本身,谁调用这个方法,谁就是self super: 调用父类方法的关键字 id:等价于void*【某些情况下】【说明】 为什么用super init,通常情况下,我们一个类的对象都是有父类的属性,加

2017-09-03 15:43:41 1087

转载 strlen和sizeof有什么区别?

1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。 该类型保证能容纳实现所建立的最大对象的字节大小。 2.sizeof是算符,strlen是函数。 3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以”\0”结尾的。 sizeof还可以用函数做参数,比如: short f();printf("%d\n", si

2017-08-28 17:32:47 401

转载 -ObjC 的故事

在开发 iOS 应用时,可能遇见这样的情况:你想实现的某种功能(比如崩溃收集),已经有成熟的产品提供,可行的方案就是集成这个使用了很久,且有专业人员维护,最重要的是“免费”的产品。一番折腾之后,运行时有可能出现”selector not recognized”错误,最后发现是少了如下的配置(Build Settings -> “-ObjC”): “-ObjC” 的使用场景据坊间说:如果你集成了有

2017-08-28 13:58:20 272

原创 KVC 与 KVO

KVC 与 KVO 是 Objective C 的关键概念Key-Value Coding (KVC)KVC,即是指 NSKeyValueCoding,一个非正式的 Protocol,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。KVO 就是基于 KVC 实现的关键技术之一。 kvc(key-value-coding,键值编码) 为属性赋值:value 为属

2017-08-25 12:04:29 270

原创 网络请求

一. 数据的网络请求大多数APP都是依托于服务器的,由服务器负责数据的管理交互,分发,筛选等等。APP做的事情就是发送请求,接收数据。当然有些请求也可以伴随数据的上传。请求(Request):APP客户端发送给服务器的数据,根据服务器协议,通知服务器,要求服务器做出数据的筛选,管理或分发。 响应(Respond):服务器接收到APP的请求,会回馈响应。响应包括TCP稳定链接的建立,以及数据的传输。

2017-08-25 11:53:30 501

原创 UIView生命周期

如图所示

2017-08-25 11:14:22 208

原创 SDK及API介绍

SDK(Software Development Kit),意思是软件开发包。拥有SDK方便大家对语音卡的编程。这个开发包通常都会包含语音卡的API函数库、帮助文档、使用手册、辅助工具等资源。意思就是,SDK事实上是开发所需资源的一个集合。Windows 32位平台下的软件开发包,包括了API函数、帮助文档、微软提供的一些辅助开发工具。      大家要注意的是API和SDK是一种使用比较广泛的比

2017-08-25 11:12:36 1018

原创 cocoapods安装配置

配置步骤

2017-08-25 11:11:10 224

原创 文件缓存

缓存

2017-08-25 11:08:28 189

原创 管理Xcode插件的插件

管理Xcode插件的插件

2017-08-25 11:06:54 221

原创 导航按钮

导航按钮设置

2017-08-25 11:05:51 285

原创 版本号

版本号

2017-08-25 11:02:29 165

原创 NSUserDefaults

数据永久化存储方式1.归档 2.plist文件 3.NSUserDefaults 4.普通文件 5.数据库NSUserDefaults是一种数据的本地存储机制,数据会随应用程序不消失。当关闭应用程序,下次再开启应用程序时,数据仍然存在,存储方法类似于NSDictionary,能存储的数据类型【NSString、NSArray、NSDictionary、NSNumber、NSData、NSDa

2017-08-25 10:58:48 240

原创 #import时<>括号和双引号的区别

“”表示从当前项目路径开始寻找文件,如果找不到,则到系统(项目)中配置的头文件路径去找; <>表示直接到系统(项目)中配置的头文件路径去找。

2017-08-23 11:01:58 1175

原创 内存管理

【内存管理是做什么事情的】1.就是把代码中程序员自己开辟的空间释放掉 内存4个区域【栈区、堆区(程序员自己操控)、数据区、代码区】【问题】 【这里的空间都是堆空间】 1.多次释放一个空间【重复释放】 2.过早释放空间【提前释放】 3.空间开辟没有释放【内存泄露】【困难】 1.一个堆空间必须等所以使用这个空间的指针使用完毕之后才可以释放 2.一个对空间的释放必须确定哪些指针指向这个空间,

2017-08-21 11:02:14 310

原创 XML解析

一、XML扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。1、XML语法标签/节点:格式:<节点名> 节点值 < /节点名>(关闭标签)如: <root>books</root> 其中root为节点名,books为节点值标签对大小

2017-08-21 10:45:49 207

原创 快速枚举

第一次for循环的时候,指向的是数组当中的第一个对象,第二次指向第二个,依次类推 会自动跳出 如果在快速枚举法期间,修改数组的元素(对象),程序会boom崩溃NSArray * array = @[@"one",@"Two",@"Three",@"Four"]; //快速枚举法for (NSString * str in array) { NSLog(@"%@",str);}

2017-08-20 18:52:18 439

原创 【description】方法

%@是可以打印所有的信息的,前提是实现description方法 否则就是打印该对象在堆区的地址 description方法,其实在父类中已经写好了,我们可以覆盖父类的description方法,直接使用我们自己定义的description方法 通常description方法的返回值是NSString,也就是该对象在使用NSLog时打印的信息; 只要这个对象在代码中使用到了NSLog就会自动

2017-08-20 18:46:08 1006

原创 类别

【category】【问】在使用一个类(官方还是第三方库),如果有一个XXX方法实在是太好了, 【答】OC中有一种形式叫做类别Category 【本质】就是给原来的类提供新的方法,可以认为是打补丁,也可以作为分类管理的方法【说明】1.类别是给原类添加方法,但是不能修改原类的方法,就相当于添加到原类当中去 2.类别中不能添加成员变量 3.但是类别中的方法是可以使用成员变量的 4.如果要使用该

2017-08-20 18:41:42 234

原创 isKindOfClass:[类名 class]

【类 class】Class就是一个变量的类型//cls就是一个变量,里面存放的是类的名字//静态的方法来获取一个类的名字Class cls =[NSString class];//【有用】NSLog(@"%@",cls);//动态的方法来获取一个类的名字Class cls2 = NSClassFromString(@"NSArray");NSLog(@"%@",cls2);//使用特

2017-08-20 18:39:47 702

原创 字典和选择器

【说明】1.OC中的字典是一个特殊的类,用来快速查找OC对象【只有OC有】 【C++内叫做map】 2.字典里面的对象是以【键值对】的形式出现的(一个key对应一个值) key是【键】 【值】是value 3.字典里面的对象不能是奇数 4.字典里面的键可以是任何的一个对象,值也一样 5.字典里面的键值对是没有一个顺序的【不可变字典】【NSDictionary】//利用键值对创建字典

2017-08-20 18:34:53 312

转载 iPhone 开发经典语录集锦

1:如果无法保证子类行为的一致性,那么就用委托 If the subClass cann’t keep with superClass,use delegate rather than inheritance2:屏幕上看到的,都是UIVew Everything you see on Screen is UIView3:如果对性能要求高,慎用Interface Build if applica

2017-08-20 18:24:20 432

原创 plist文件

简介在做iOS开发时,经常用到到plist文件, 那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件。文件是xml格式的。【用途】通常一些文本量不是很大的文本,通常用于储存用户设置,也可以用于存储捆绑的信息,例如登录信息,一些验证信息 可视化的存储文本【说明】p

2017-08-20 18:19:46 13476

原创 文件操作

【说明】nslog:写 stdout [屏幕也是文件] 按键盘:写 文件操作我们分为两类 对于文件夹:创建、删除、拷贝、移动、查看 对于普通文件来说:读取信息和写入信息 1.读 从存储设备到内存是读文件 2.写 从内存到存储设备是写文件 framebuffer【文件管理类】【NSFileManager】NSUTF8StringEncoding:可打印汉字#define SHO

2017-08-20 18:01:17 275

图片压缩工具

可选择单个、多个图片,大大减小图片大小,在移动开发上,对于减小安装包大小有极大的效果

2017-12-04

iOS技术概览

iOS 技术概述是针对iOS平台新手的介绍指南。它简要介绍一些对开发过程有影响的技术和工具,并且提供相关文档和其他信息来源链接。通过阅 读本文档,您将可以: ▪ 熟悉iOS平台。 ▪ 了解iOS软件技术、知道为何使用这些技术以及何时使用。 ▪ 了解该平台的发展机遇。 ▪ 获得从其他平台转移到 iOS平台用到的技巧和指南。 ▪ 找到和您感兴趣的技术相关的关键文档。 本文档只提供和软件开发过程有关的信息,不提供和用户级别的系统功能有关的信息。 本文档非常适合开发新手用于熟悉iOS平台。有经验的开发人员可以将本文档作为路线图,根据它来钻研某些特定技术或开发技术。

2017-09-08

IOS触摸事件

触摸事件在IOS中是基于多点触摸模型。取代鼠标和键盘,用户通过触摸设备的屏幕来 操作对象,输入数据以及实现其它意愿。IOS识别的一个或多个手指对屏幕进行触摸并将其 作为多点触摸序列的一部分。该序列以用户第一个手指触摸屏幕开始一直持续到最后一个手 指离开屏幕。IOS通过触摸序列来跟踪手指在屏幕上的移动并记录它们的特征,包括手指在 屏幕上的位置以及触摸发生的时间。应用程序通常会识别一组触摸为一个手势并对其进行相 应的响应,例如:放大缩小屏幕内容用于响应pinch手势,对屏幕内容进行滚动用于响应flic k手势。

2017-09-08

iOS并发编程指南

iOS 和 Mac OS 传统的并发编程模型是线程,不过线程模型伸缩性 不强,而且编写正确的线程代码也不容易。Mac OS 和 iOS 采取“异步 设计方式”来解决并发的问题。 引入的异步技术有两个:  Grand Central Dispatch(GCD):系统管理线程,你不需要编写线 程代码。只需定义想要执行的任务,然后添加到适当的 dispatch queue。GCD 会负责创建线程和调度你的任务。系统直接提供线 程管理,比应用实现更加高效。  Operation Queue:Objective-C 对象,类似于 dispatch queue。你 定义想要执行的任务,并添加任务到 operation queue,后者负责 调度和执行这些任务。和 GCD 一样,Operation Queue 也管理了 线程,更加高效。

2017-09-08

iOS 5 ARC完全指南

iOS 5 最显著的变化就是增加了 Automatic Reference Counting(自 动引用计数)。ARC 是新 LLVM 3.0 编译器的特性,完全消除了手动内 存管理的烦琐。在你的项目中使用 ARC 是非常简单的,所有的编程都 和以前一样,除了你不再调用 retain, release, autorelease。启用 ARC 之后,编译器会自动在适当的地方插入适当的 retain, release, autorelease 语句。你不再需要担心内存管理,因为编译器为你处理了 一切。注意 ARC 是编译器特性,而不是 iOS 运行时特性(除了 weak 指 针系统),它也不是其它语言中的垃圾收集器。因此 ARC 和手动内存 管理性能是一样的,有些时候还能更加快速,因为编译器还可以执行某 些优化。

2017-09-08

coredata知多少

Core Data拥有成熟的代码,这些代码通过单元测试来保证品质。应 Core Data的程序每天被世界上 百万 户使 。通过了 个版本的发布,已经被 度优化。 它能利 Model层的信息和运 时的特性, 不通过程序层的代码实 现。 除了提供强 的安全 持和错误处理外,它还提供了最优的内存扩展性, 可实现有竞争 的解决 案。不使 Core Data的话,你需要花很 时间来起 草 的 案,解决各种问题,这样做效率不 。 除了Core Data本 的优点之外,使 它还有其他的好处: 它很容易和Mac OS X系统的Tool chain集成;利 Model设计 具可以按图形化 式轻松创建 数据库的结构;你可以 Instruments的相关模板来测试Core Data的效率并 debug。 在Mac OS X的桌 程序中,Core Data还和Interface Builder集成 (打开Inspector可以看到有binding的选项,这个东东iPhone上 有。。。),按照model来创建UI变的更简单了。 这些功能能更进 步的帮助 你缩短设计、开发、测试程序的周期。

2017-09-08

Cocoa基本原理指南

对于刚刚加入这个阵营的开发者来说,Cocoa 像是一个巨大而未知的新世界。Cocoa 开发环境的各种特性、 工具、概念、术语、编程接口、甚至是编程语言对他们来说可能都比较生疏。Cocoa 基本原理指南提供了 领略 Cocoa 技术景致的方向,介绍 Cocoa 的特性、基本概念、专用术语、结构、以及潜在的设计模式, 使开发者更加容易上手。 Cocoa 基本原理指南的组织结构使读者可以逐步获取有关 Cocoa 开发的一般性知识。它从最基础的信息开 始—即 Cocoa 有什么组件和能力,以考察 Cocoa 的主要架构作为结束。每一章都建立在前一章内容的基 础上,每个部分都给出某个主题的重要细节,但又仅仅在较高的级别上进行描述。文中还提供很多指引, 方便读者了解其它更为详尽的文档。 在 Cocoa 的开发文档中,Cocoa 基本原理指南是介绍 Cocoa 概念的初级文档,是诸如 Cocoa 描画指南和 Cocoa 的视编程指南这类文档的先期读物。阅读 Cocoa 基本原理指南需要的前提条件很少,但读者必须是 熟练的 C 程序员,且应该熟悉 Mac OS X 的能力和技术。您可以通过阅读 Mac OS X 技术概览一书来获得 这些知识。

2017-09-08

Blocks 编程要点

Block 对象是 C 级别的语法和运行时特性。它们和标准 C 函数很类似,但是除了 可执行代码外,它们还可能包含了变量自动绑定(栈)或内存托管(堆)。所以一个 block 维护一个状态集(数据),它们可以在执行的时候用来影响程序行为。 你可以用 blocks 来编写函数表达式,这些表达式可以作为 API 使用,或可选的存 储,或被多个线程使用。Blocks 作为回调特别有用,因为 block 携带了进行回调所需 要的执行代码和执行过程中需要的数据。 你应该阅读该文档来掌握 block 对象是什么和如何在 C,C++或 Objective-C 上面使 用它们来让你的程序更高效和更易于维护。

2017-09-08

iOS人机界面指导手册

用户钟爱那些专门为移动设备设计的 iOS 程序。例如,用户非常希望程序能够与设备屏 幕相衬,并且能够响应那些用户熟识的手势。虽然用户可能不知道人机交互设计原则, 诸如“直接操控”“一致性”,但却能觉察的出遵守原则和违背原则的程序之间的差别。 当你开始设计 iOS 程序时,一定要意识到是什么让 iOS 设备如此独特,并且学会使用交 互设计原则,以便用户能爱上你的程序。

2017-09-08

多线程编程指南

线程是单个应用中可以并发执行多个代码路径的多种技术之一。虽然更新的技术 如操作对象(Operation objects)和 Grand Central Dispatch(GCD),提供一个更 加现代化和高效率的基础设施来实现多核并发,但是 Mac OS X 和 iOS 也提供一套接 口来创建和管理线程。 本文档介绍了 Mac OS X 上面的可用线程包,并且演示如何使用它们。本文档还 描述了在你的应用中多线程代码同步的相关技术。

2017-09-08

Instruments 用户指南

详细介绍了Instruments的原理和使用方法,资源老了些,但是对于深层次理解还是很好

2017-08-25

软件设计师课程体系结构

专业的人士,专业的资料,你会收获很多的。

2011-04-20

空空如也

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

TA关注的人

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