自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zzqiltw的专栏

iOS的修炼之路

  • 博客(24)
  • 收藏
  • 关注

原创 [个人博客搬运]Effective Objective-C 2.0知识点小记

Effective Objective-C 2.0读书笔记第一章消息结构和函数调用的区别:消息调用的语言,其运行时所执行的代码由运行环境来决定;函数调用则有编译器决定。第二章在类的头文件中尽量少引用其他头文件,用@class字段,减少编译时间第三章多用@()来创建字面量第四章用#define会把所有的做替换,并且不会做类型判断,也不会有同名警告。#define kTimeDuratio

2016-07-15 19:41:40 788

原创 [个人博客搬运]ReactiveCocoa学习笔记

ReactiveCocoa学习笔记前言ReactiveCocoa是一个很有意思的FRP框架,用法简单,但是理解起来稍微有些复杂。这篇笔记记录了自己对ReactiveCocoa的理解,大多以示例为主,每一个示例会附上注释。基本概念先说说基本的概念,这里引用Limboy’s HQ大大的例子:*Signal and Subscriber* 这是RAC最核心的内容,这里我想用插头和插座来描述,插座是Si

2016-07-15 19:40:50 790

原创 [个人博客搬运]Objective-C的Block使用技巧

这周给大家分享的iOS知识算是蛮有意思的,用写Java方法调用的语法来写Objective-C。没有什么高大上的技术,有的只是Block的使用技巧。前些天在读这篇RAC源码解析的文章 的时候,联想到了Masonry/BlocksKit两个三方框架,它们三都大量使用到了Block,其中就有类似Java语法来写Objective-C的例子。首先我们来看看普通的Block是什么样的:in

2016-07-15 19:39:35 417

原创 [个人博客搬运]定制UICollectionViewLayout实现集合视图

最新的需求中,需要实现一个展示宝贝上新的视图,展现方式是点击一个UITableView的cell,在cell拉出一个空白的“抽屉”视图,“抽屉”中横向展示可滚动的多个宝贝的图文视图,于是很自然地想到用UICollectionView来实现。后来这个需求被砍掉了(orz),不过UICollectionView是一个很有意思很灵活的视图,类似Android的GridView,但是比之功能更强大,它可以

2016-07-15 19:36:30 2060

原创 [个人博客搬运]Method Swizzling的简单应用场景

问题引入前几天和同事一起看一个iOS客户端工程的bug,找出来是向字典插入空值的原因,这类问题如果要预防,需要在每次插入之前做一次空值判断,虽然严谨但是稍微有些麻烦。于是周末我调研了其他的方法,就是Method Swizzling,用到Objective-C的底层Runtime机制。原理简单来说,每个类里都有一个 Dispatch Table ,将方法的名字(SEL)跟方法的实现(

2016-07-15 19:28:48 437

原创 [个人博客搬运]JavaEE自定义标签技术

我们经常用到的JSTL(JSP标签标准库)是典型的自定义标签的案例。自定义标签,即是在JSP页面的标签中自定义它们的功能,因为在MVC和三层架构中,JSP页面作为视图(view)是不允许出现Java代码的,一旦迫不得已要写Java代码,我们可以将其用自定义标签移除。而且主流框架如Struts2等也使用了自己的一套自定义标签,学习自定义标签有利于对框架源码的理解。自定义标签有

2016-07-15 11:20:42 480

原创 [个人博客搬运][Java]别写排序了,用TreeSet

从一本书看到,TreeSet是一个可以自动排序的集合.将数据或者对象添加进去后,会自动给我们排好序。虽然有类似的sort函数,但是用这个集合存储数据和整理数据都比较方便。1.自带的默认排序算法排序,例如: import java.util.TreeSet; import org.junit.Test; public class TestTreeSet

2016-07-15 11:19:40 241

原创 [个人博客搬运][Java][正则表达式]邮箱提取的小程序

挺喜欢用Java写一些小东西的,这次的内容比较简单,是利用正则表达式提取本地文件或者URL中的邮箱信息。 正则表达式:"[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"   代码如下: 1 import java.util.regex.*; 2 import java.io.*; 3 import java.net.*;

2016-07-15 11:18:37 418

原创 委托和代理(类似接口回调的使用)

1. 有些事情,自己本身做不了,比如在一个新建数据的控制器中填好数据,想在另外一个展示数据的控制器中保存数据并展示。这个时候,要用到代理模式。2. 新建数据的控制器作为委托方,展示数据的控制器作为代理方。委托方定义一个协议让代理方遵守。委托方拥有代理方的一个弱引用。3. 委托方在某个地方A调用协议的方法。协议方法我喜欢以should开头比较好理解,比如想要保存数据命名为(s

2014-06-30 10:53:24 411

原创 归档学习记录

归档和Java中得序列化机制类似,都是jiang

2014-05-30 21:05:44 577

转载 NSInteger和int的区别

今天在困惑int和long的使用。查到c语言中,int和long的字节数是和操作系统指针所占位数相等。但c语言中说,long的长度永远大于或等于intobjective-c里,苹果的官方文档中总是推荐用NSInteger它和int有什么区别呢,stackoverflow这帮大神给了答案。原来在苹果的api实现中,NSInteger是一个封装,它会识别当前操作

2014-05-30 20:20:12 564

原创 copy语法学习记录

1. 设计拷贝的目的:让原对象生成一个副本,使我们修改副本时不影响原对象,并且新对象计数器为1,原对象计数器不变。如:(深拷贝)例1:例2:例3:但是如果原对象本身就是个不可变对象再调用copy的对象,为了性能着想,干脆返回自身:(浅拷贝(只有不可变对象调用copy方法才会发生浅拷贝))例1:2.两种方式: 想调用copy方法,必

2014-05-30 13:29:31 837

原创 NSNumber和NSValue

因为NSArray等一系列集合是不允许基本数据类型、结构体和空值加入的,当我们要把一个基本数据leix

2014-05-29 15:16:43 493

原创 NSArray常用用法学习记录

NSArray是不可变的数组。类似于Java中得ArrayList。只是不能够添加元素,也bu

2014-05-28 17:19:45 514

原创 NSMutableString的常用方法,包括替换、拼接、插入、删除

//// main.m// NSMutableString//// Created by zzqiltw on 14-5-27.// Copyright (c) 2014年 zzqiltw. All rights reserved.//#import void testBasic() { // 一种创建方式:先分配最大容量(超过会自动扩容)再set值 N

2014-05-28 11:41:07 1276

原创 NSString的常用方法,包括查找、切割、比较

//// main.m// NSString的各种常用方法//// Created by zzqiltw on 14-5-26.// Copyright (c) 2014年 zzqiltw. All rights reserved.//#import #pragma mark 字符串的比较void testCompare() { if ([@"abc" isE

2014-05-28 11:39:37 2938

原创 NSString的构造方法(包括读取文件和URL的内容)

今天学习了NSString类的常用构造方法,更加深入理解了OC语言风格。

2014-05-26 21:21:22 460

原创 Block的用法

Block效率高,苹果官方推荐使用。可以用Block实现类似Java8的新特性lambda表达式的效果,也和匿名类很像。有篇博客对block分析很透彻:http://www.cnblogs.com/ymonke/p/3511304.html

2014-05-25 15:58:57 453

原创 protocol协议的简单用法

1. 定义协议用关键字@protocol,这个概念类似于Java中的接口,但是协议不需要全部实现方法,只需要实现其中的某些方法即可。

2014-05-25 14:25:25 665

原创 Category使用以及使用场景

1. Category(以下称类别)非常类似于设计模式中的装饰设计模式,即原先的类不满足需求,需要为其增加新的方法。(但不能增加成员变量)2. 使用:Student.h#import @interface Student :NSObject -(void) print; @endStudent.m:#import "Student.h" @implem

2014-05-24 21:24:04 751

原创 @autoreleasepool学习记录

1. 和Java的GC不同,这个自动释放池是“半自动的”。当自动释放池销毁的时候,里面所有的对象调用一次release方法。2. 如何创建一个自动释放池:@autoreleasepool{     }大括号表示里面所有的对象会被添加到这个自动释放池中。当大括号结束的时候销毁自动释放池。3. 怎样将对象加入自动释放池呢?只需要对对象发送一条autoreleas

2014-05-24 15:14:10 418

原创 @property属性参数

1. 读写属性:默认是readwrite,会生成getter和set如果是readonly表示只会生成getter方法2. setter处理:默认是assign 赋值。因此基本数据类型不需要加这个参数。retain表示先释放旧的,再持有新的。copy表示先释放旧的,再copy新的。3. atomic:表示给方法加锁,保证多线程环境下的线程安全,支持多线程。(默认)nonatom

2014-05-24 14:15:06 460

原创 @class关键字和#import

@class关键字只是告诉编译器这里有个什么类,并不会把类的方法和成员变量包含进来,因此

2014-05-24 09:16:53 323

原创 Objectiv-C语法简单概述

OC是C语言的超集。C语言和C++代码可以和OC混合编译2.

2014-05-23 20:38:00 566

空空如也

空空如也

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

TA关注的人

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