随笔分类 - Objective-C
摘要:一、类方法: 不依赖于对象,执行效率更高; 能用类方法解决的问题,尽量使用类方法; 类方法中不能直接访问实例变量(成员变量) 二、野指针和空指针是什么?什么时候产生?怎么避免? 只要一个对象被释放了,我们就称这个对象为 "僵尸对象(不能再使用的对象)" 当一个指针指向一个僵尸对象(不可用内存),我们
阅读全文
摘要:需求:在一个数组里面,将在这个数组中的并且在另一个数组里面的元素过滤掉。 即:在一个数组dataArray里面,将在dataArray数组中的并且在filteredArray数组里面的元素过滤掉。 //iOS-筛选数组内的元素 //在dataArray中里面,将在dataArray中的并且在filt
阅读全文
摘要:利用分类,NSString,增加一个方法。 #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface NSString (Height) + (CGSize)getRect:(NSString *)textStr and
阅读全文
摘要:1、OC简介 全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发。 C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发Mac OS X平台和iOS平台的应用程序 2、 OC语法概述
阅读全文
摘要:1、NSSet 1.是一个无序的,管理多个对象的集合类,最大特点 是集合中不允许出现重复对象,和数学上的集合含义是一 样的 2.除了无序、不许重复之外,其它功能和NSArray是一样的2、NSArray 1.数组是一组有序的集合, 2.通过索引下标取到数组中的各个元素,与字符串相同, 3....
阅读全文
摘要://字符串的创建 //在可变字符串中 空字符串就有意义 NSMutableString *mString = [[NSMutableString alloc]init]; NSLog(@"mString:%@",mString); ...
阅读全文
摘要:NSString *testStr01=@"HelloWord"; NSString *testStr02=[testStr01 substringToIndex:5];//取头(从头到哪),to不包括下标内容 NSString *testStr03=[t...
阅读全文
摘要:在Objective-C中,排序分为:1、Foundation框架中的对象排序2、自定义对象排序例子:每个学生都有一个成绩score属性,根据成绩score对学生排序自定义对象 Student.hStudent.mmain.m#import #import "Student.h"int main(i...
阅读全文
摘要:类方法用来创建对象的方法就是工厂方法1、无参工厂方法 创建对象,并给属性一个默认值。//无参工厂方法实现+(Student*)student{ return [[Student alloc]init];}2、有参工厂方法 2.1.要依赖有参的初始化方法 -(id)initWithAge:(...
阅读全文
摘要:声明式属性的使用:声明式属性叫编译期语法@property(retain,nonatomic)Some *s;@property(参数一,参数二)Some *s;参数1:retain:修饰引用(对象)数据类型 assgin:修饰基本数据类型(默认) copy:一些对象需要复制才能使用NSString...
阅读全文
摘要:本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。- (void)delayMethod{ NSLog(@"execute");}1.performSelector方法[self performSelector:@selector(delayMethod) wit...
阅读全文
摘要:在上篇博客 《iOS Block简介》中,侧重解析了iOS Block的概念等,本文将侧重于它们在开发中的应用。Block是iOS4.0+ 和Mac OS X 10.6+ 引进的对C语言的扩展,用来实现匿名函数的特性。用维基百科的话来说,Block是Apple Inc.为C、C++以及Objecti...
阅读全文
摘要:Block是对象,它封装了一段代码,这段代码可以在任何时候执行。block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:block是inline的,并且它对局部变量是只读的。1、实体形式Block的实际行为和Function很像,Block...
阅读全文
摘要:UIColor+Hex.h里面中#import @interface UIColor (Hex)+ (UIColor *) colorWithHexString: (NSString *)color;@endUIColor+Hex.m里面中#import "UIColor+Hex.h"@implem...
阅读全文
摘要:3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单...
阅读全文
摘要:instancetype是clang 3.5开始,clang提供的一个关键字表示某个方法返回的未知类型的Objective-C对象instancetype会告诉编译器当前的类型,这点和NSObject *类似,但id对于编译器却是无类型的,调用任何方法不会给出错误提示instancetype类型:(...
阅读全文
摘要:在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。在信息工程中指针是一个用...
阅读全文
摘要:在上篇博客 iOS代理协议 中,侧重解析了委托代理协议的概念等,本文将侧重于它们在开发中的应用。假如我们有一个需求如下:界面A上面有一个button、一个label。从界面A跳转到界面B,在界面B的输入框中输入字符串,在界面A的label上显示。这是一个典型的反向传值的例子。这个例子的核心是:“在界...
阅读全文
摘要:代理,又称委托代理(delegate),是iOS中常用的设计一种模式。顾名思义,它是把某个对象要做的事情委托给别的对象去做。那么别的对象就是这个对象的代理,代替它来打理要做的事。反映到程序中, 首先要明确一个对象的委托方是哪个对象,委托所做的内容是什么。在iOS程序设计中,委托通过一种@protoc...
阅读全文
摘要:有人说可以用([array count]==0 )来判断是否为空,都是坑,如果array为空的话,执行count就会直接报错,程序崩溃退出。正确判断NSArray是否为空的方法:用 (!array)if(array != nil && ![array isKindOfClass:[NSNullcla...
阅读全文