自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 尾调用优化

一、什么是尾调用?尾调用的概念非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。function f(x){ return g(x);}上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。以下两种情况,都不属于尾调用。// 情况一function f(x){ let y = g(x); return y;}

2016-12-29 15:27:40 458

转载 重载hash与isEqual:方法

前言NSObject 自带了hash与isEqual:方法,服务于具有hash表结构的数据结构。NSObject自带的hash函数相当于hash表中的f(key)函数中的key,这“唯一”的key需要用户自己产生,至于用什么算法由用户自己决定。 准备//// Model.h// Hash//// Created by YouXianMing on

2016-12-29 11:02:37 697

转载 [Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)

关联    关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。    关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。在类的定义之外为类增加额外的存储空间    使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。    关联是基于关键字的,因此,我们

2016-12-28 11:27:44 313

转载 iOS开发 之 不要告诉我你真的懂isEqual与hash!

为什么要有isEqual方法?isEqual方法的作用大家肯定是知道的:判断两个对象是否相等但是判断相等不是已经有==运算符了么, 为什么还要isEqual方法?这是因为:对于基本类型, ==运算符比较的是值; 对于对象类型, ==运算符比较的是对象的地址(即是否为同一对象)注意: 上述==运算符的说明适用于Objective-C和Java等不支持运算符重载

2016-12-26 14:21:54 3049

转载 __NSTaggedPointerString 转码问题

__NSTaggedPointerString这个类型是标签指针字符串,这是苹果在 64 位环境下对 NSString,NSNumber 等对象做的一些优化。简单来讲可以理解为把指针指向的内容直接放在了指针变量的内存地址中,因为在 64 位环境下指针变量的大小达到了 8 位足以容纳一些长度较小的内容。于是使用了标签指针这种方式来优化数据的存储方式。从他的引用计数可以看出,这货也是一个释放不

2016-12-22 14:44:31 1695

转载 iOS 静态库,动态库与 Framework 浅析

静态库与动态库的区别首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件。另外一种情况是,对于某些不会进行大的改动的代码,我们想减少编译的时间,就可以把它打包成库,因为库是已经编译好的二进制了,编译的时候只需要

2016-12-15 17:40:16 2762

转载 iOS开发——创建你自己的Framework

如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实现细节,而这些实现你可能并不想开源出来。此外,开发者也可能并不想看到你的所有代码,因为他们可能仅仅希望将你的这份漂亮代码的一部分植入自己的应用中。另一种方法是将你的代码编译成静态库(library),让其他开发者添加到自己的项目中。然而,这需要你一并公布所有的公开的头文件,实在是非常

2016-12-15 16:43:34 430

转载 关于静态库、动态库的区别汇总

linux中静态库和动态库的区别一、不同库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 1. 静态函数库    这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编

2016-12-15 15:40:01 325

转载 Xcode中的 workspace, project, target, scheme

最近在做SDK兼容性测试发现一个问题,就是编译出来的SDK,在iOS8以下的系统中不能用。查了下,发现是编译设置错了,虽然我target设置的是支持iOS6以上的,但是工程设置的还是iOS8以上。xib文件编译的版本是根据project设置,而不是target,这个也是为什么在低于iOS8中不能用的原因。正好之前对SDK开发进行了工程拆分和重组,也使用了workspace,顺便也了解了些编译相关的

2016-12-09 15:59:51 364

转载 compile Sources 和 Copy Bundle Resources的区别

CopyBundle Resources 主要是一些资源文件会被打包的时候会被放入app中。我见过的内容有:xib文件,图片资源,xxxSDK.bundle,html文件,js文件。我曾经碰到一个问题就是我在模拟器和设备中调试的时候都可以运行hmtl和js文件。可是打包给客户发现js失效了,打开包内容发现少了js文件,最后在这里面手动添加进去之后,在打包才发现js进

2016-12-07 17:27:10 2838

转载 C语言中.h和.c文件解析(很精彩)

简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:      1.预处理阶段  2.词法与语法分析阶段  3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)  4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可

2016-12-07 17:23:13 472

转载 xcode添加文件时的勾选解析

在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然。现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来。官方说明文档http://developer.apple.com/library/mac/#qa/qa1484/_index.htmlhttp://labs.ywlx.net/?p=

2016-12-07 15:05:03 1330

转载 关于Xcode导入文件夹的2种选择

第一种:勾选Create groups一、使用Create groups 我们在项目中可以手动添加一个groups(右键点击选择New Group),但是手动添加的groups实际上并不会存在于项目的目录中,被添加进groups中的文件仍在位于它原来所在的位置,但从外部引入进来的groups并不会如此。groups一旦被创建或添加,都是以黄色文件夹的形式存在的,当你想要使用文件夹中的某个类

2016-12-07 14:55:07 1040

转载 Xcode项目引入外部文件夹,不能引用问题

最近在处理一些工程时候,偶尔注意到,工程文件里面添加了一些新的样式图标。什么样子呢,先看图,赫赫。 工程中的蓝色文件夹和以前习惯的黄色文件夹是不是不太一样。今天简单总结一下Folder References and Groups 参考文件夹和分组1. Group 分组在xCode的工程中,右键New Group, 即可创建,也就是黄色的文件夹。工程中想要分类管理的文件,可以

2016-12-07 14:53:51 2345

转载 ScrollView 与 Autolayout

学 Autolayout,当涉及到 ScrollView 时,很多人面对满屏幕红色错误不知所措,为什么明明以前没问题的约束到了这儿就成了错误。比如下面这种情况:一个蓝色的 UIView,设其长宽约束分别为 210,200。上、左和右间距为 55。如此设置这个 View 的位置就被确定了。没有错误,没有警告。可同样的方法,到 UIScrollView 却有触目惊心的红

2016-12-06 15:40:50 378

转载 iOS中 @synthesize 和 @dynamic

在声明property属性后,有2种实现选择@synthesize编译器期间,让编译器自动生成getter/setter方法。当有自定义的存或取方法时,自定义会屏蔽自动生成该方法@dynamic告诉编译器,不自动生成getter/setter方法,避免编译期间产生警告然后由自己实现存取方法或存取方法在运行时动态创建绑定:主要使用在CoreDa

2016-12-05 14:25:09 305

转载 Core Data的理解

一、基础概念深入1.NSManagedObjectContext被管理数据上下文就像便笺簿当从数据持久层获取数据时,相当于把这些临时的数据拷贝写在便笺簿上,然后就可以随心所欲的修改这些值。通过上下文,可以对数据记录NSManagedObject进行添加删除更改,记录更改后支持撤销和重做。除非你保存这些数据变化,否则持久层的东西是不会变化。通常我们将

2016-12-01 09:55:56 332

空空如也

空空如也

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

TA关注的人

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