IOS开发
洃c小强
这个作者很懒,什么都没留下…
展开
-
retain/copy/assign的含义
举个例子可能更好理解点NSString *pt = [[NSString alloc] initWithString:@"abc"];上面一段代码会执行以下两个动作1 在堆上分配一段内存用来存储@"abc" 比如:内存地址为:0X1111 内容为 "abc"2 在栈上分配一段内存用来存储pt 比如:地址为:0Xaaaa 内容自然为0X1111 下面分别看下assign r转载 2015-01-30 14:05:08 · 325 阅读 · 0 评论 -
performSelector
在项目中,常常用到performSelectorXXX之类的方法,而且有很多类似方法;今天就来召集一下!1.performSelectorOnMainThread:withObject:waitUntilDone:- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL转载 2015-01-23 13:18:19 · 258 阅读 · 0 评论 -
iOS中assign、copy 、retain等关键字的含义
assign: 简单赋值,不更改索引计数copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1Copy其实是建立了一个相同的对象,而retain不是:比如一个NSString对象,地址为0×1111,内容为@”STR”Copy到另外一个NSString之 后,地址为0×2222,内容相同,新的转载 2015-01-23 13:27:10 · 266 阅读 · 0 评论 -
IOS Object-c NSDate总结日期操作
1 // 当前时间创建NSDate NSDate *myDate = [NSDate date]; NSLog(@"myDate = %@",myDate);2 //从现在开始的24小时 NSTimeInterval secondsPerDay = 24*60*60; NSDate *tomorrow转载 2015-01-23 13:33:27 · 278 阅读 · 0 评论 -
浅谈 Objective-C 下对象的初始化
众所周知,Objective-C是一门面向对象的语言,一般情况下,我们在Objective-C中定义一个类时,总要提供一个初始化方法,一般大家都是这样写的:?12345678- (MyClass *)init { self = [super init转载 2015-01-23 13:36:51 · 248 阅读 · 0 评论 -
NSString的几种常用方法
要把 “2011-11-29” 改写成 “2011/11/29”一开始想用ios的时间格式,后来用NSString的方法搞定。[string stringByReplacingOccurrencesOfString:@"-"withString:@"/"]; 一句话搞定。 发现NSString还是很值得研究下,于是做做笔记。 看了天梯梦的博客觉得相当不错,于是懒得写了直转载 2015-01-23 13:52:11 · 250 阅读 · 0 评论 -
基础框架-文件操作-目录操作
下面表格中的措施 适用于NSFileManager这类物件,可以用来进行 目录操作:措施名称描述-(NSString *)currentDirectoryPath获取当前目录的路径-(BOOL)changeCurrentDirectoryPath:path将当前目录的路径更换到path-(BOOL)copyPath:from to转载 2015-01-23 14:29:59 · 265 阅读 · 0 评论 -
presentModalViewController和dismissModalViewControllerAnimated的使用总结
在实际开发中,如果要弹出视图:我们常用到presentModalViewController方法和dismissModalViewControllerAnimated方法。presentModalViewController:弹出视图dismissModalViewControllerAnimated:隐藏视图贴代码:弹出视图:FeedbackViewController转载 2015-01-23 13:23:47 · 196 阅读 · 0 评论 -
Objective-c 代理模式(delegate)
Objective-c 代理模式(delegate)一、什么事代理模式?代理模式是在oc中经常遇到的一种设计模式,那什么叫做代理模式呢? 举个例子:有一个婴儿,他本身不会自己吃饭和洗澡等等一些事情,于是婴儿就请了一个保姆,于是婴儿和保姆之间商定了一个协议,协议中写明了保姆需要做什么事情, 而保姆就是这个代理人, 即:婴儿和保姆之间有个协议,保姆继承该协议,于是保姆就需要实现该协议中的条转载 2015-01-23 13:26:05 · 285 阅读 · 0 评论 -
@property (nonatomic, assign) 是什么?
assign: 简单赋值,不更改索引计数(Reference Counting)。copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1retain的实际语法为:- (void)setName:(NSString *)newName {if (name != newName) {[name release转载 2015-01-23 13:32:48 · 728 阅读 · 0 评论 -
argc argv
ARGc和ARGv中的ARG指的是"参数"(外语:ARGuments, argument counter 和 argument vector ) [1] 至少有两个参数至主函数:ARGc和ARGv;首先是一个计算提供的参数到程序,第二个是对字符串数组的指针。[1]1基本作用编辑argc,argv 用命令行编译程序时有用。转载 2015-01-23 13:40:37 · 486 阅读 · 0 评论 -
指针变量的引用
指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起错误。在Objective-C 语言中,变量的地址是由编译系统分配的,对用户完全透明,用户不知道变量的具体地址。两个有关的运算符:&:取地址运算符。 *:指针运算符(或称“间接访问” 运算符)。转载 2015-01-23 13:45:23 · 591 阅读 · 0 评论 -
NSEnumerator
枚举 (NSEnumerator)遍历数组每个索引处的对象,你可以编写一个0到[array count]的循环,而NSEnumerator用来描述这种集合迭代运算的方式。通过objectEnumerator向数组请求枚举器,如果想从后向前浏览集合,可使用reverseObjectEnumerator方法。在获得枚举器后,可以开始一个while循环,每次循环都向这个枚举器请求它的下一个对象:转载 2015-01-23 14:34:30 · 329 阅读 · 0 评论 -
UIImageView
IOS App 中很多地方都需要使用到图片,如:背景、小图标、Logo、按钮等。这些图片可以使用 UIImage 对象来创建,但是必须为图片指定一个专门的容器组件—UIImageViewUIImage是一个专门存储图片数据的对象,可以代表的图片格式如下表IOS 中,默认兼容的图片格式是 PNG可以通过文件、Quartz image对象或 image Data数据得转载 2015-01-23 13:16:06 · 221 阅读 · 0 评论 -
OC基础数据类型-集合(NSSet)
1、集合:集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址;不过NSArray是有序的集合,NSSet是无序的集合。集合是一种哈希表,运用散列算法,查找集合中的元素比数组速度更快,但是它没有顺序。1 NSSet * set = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", ni转载 2015-01-23 15:04:57 · 556 阅读 · 0 评论 -
[self performselector: withObject: afterDelay:];一定时间后执行某个方法
{ NSLog(@"111"); SEL rl = @selector(rotateLayers); [selfperformSelector:rl withObject:nilafterDelay:1.0]; // 这里不延时1秒NSLog(@"222");}转载 2015-01-23 13:19:17 · 357 阅读 · 0 评论 -
Objective-C基础教程(第一版)-学习笔记第八章Foundation Kit快速教程
一、一些有用的数据类型NSRange范围typedef struct _NSRange{ unsigned int location; unsigned int length;}NSRange;unsigned int是C语言中的int类型location用来存放字段范围的起始位置,length是该范围内所含转载 2015-01-23 14:40:39 · 460 阅读 · 0 评论 -
Objective-C中一种消息处理方法performSelector: withObject:
Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递人和消息。首先介绍两个方法 SEL和@selector根据AppleObjective-C Runtime Reference官方文档这个传递消息的函数就是 idobjc_转载 2015-01-23 13:20:51 · 227 阅读 · 0 评论 -
UIImagePickerController拍照与摄像
该类继承自UINavigationController类 步骤:检查媒体来源模式是否可用检查该来源模式下所支持的媒体类型创建图像选取控制器,设置其属性并显示在委托协议方法中处理1.检查媒体来源调用UIImagePickerController类的静态方法isSourceTypeAvailable来检查sourceType是一个UIImagePickerControlle转载 2015-01-23 13:22:31 · 341 阅读 · 0 评论 -
定义属性时,什么情况使用copy、assign、retain?
情况太多,不宜一一列举,知道这三个关键字本身的含义才是王道:这些关键字一般影响的是set方法,当用copy时,set方法会先release旧值,再copy一个新的对象,reference count 为1(减少了对上下文的依赖);retain,release旧值,retain新值;a ssign,直接赋值,无retain操作。转载 2015-01-23 13:29:35 · 501 阅读 · 0 评论 -
Objective-C对象的申请空间与初始化
Objective-C搞了很久了,结果现在还是对起内存管理与对象初始化一知半解,还好都是些移动开发没出太大问题,不过现在的一个模块化应用上对语言的使用要求更加严格了,还是从官方文档搞起吧,原文是Allocating and Initializing Objects (链接经常变,不保证可用),出自Introduction to The Objective-C Programming Lan转载 2015-01-23 13:35:45 · 273 阅读 · 0 评论 -
objective-c 关键字和概念
@看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interface XXX。@interface声明类@implementation实现类@protocol声明协议@optional与@protocol配合使用,说明协议中的某个或者某几个方法可以不实现@required与@protocol配合使转载 2015-01-23 13:49:23 · 256 阅读 · 0 评论 -
Objective-c 数字对象(NSNumber)
在Objective-c中有int的数据类型,那为什么还要使用数字对象NSNumber?这是因为很多类(如NSArray)都要求使用对象,而int不是对象。NSNumber就是数字对象,我们可以使用NSNumber对象来创建和初始化不同类型的数字对象。如:[cpp] view plaincopy#import NS转载 2015-01-23 13:50:01 · 316 阅读 · 0 评论 -
IBOutlet IBAction
IBOutlet输出口是使用关键字IBOutlet声明的实例变量。控制器头文件中的输出口声明应如下所示:@property (nonatomic, retain) IBOutlet UIButton *myButton;IBOutlet关键字的定义如下所示:#ifndef IBOutlet#define IBOutlet#endif- (IBAction)doS转载 2015-01-23 13:16:46 · 233 阅读 · 0 评论 -
Objective-C对象初始化
1. 两种方式创建对象:[类名 new],[[类名 alloc] init],Cocoa推荐alloc init2. alloc可以分配一块内存,然后清零。BOOL为NO,int为0,float为0.0,指针为nil3. Car *car = [Car alloc]可能运行起来,但没有init,可能会出现bug4. init方法一般都会返回正在初始化的对象,因为初始化方法返转载 2015-01-23 13:35:01 · 309 阅读 · 0 评论 -
解释object c 中经常出现的initWith... 和....With...
init代表的是初始化方法。initWith。。。代表的是带参的初始化方法。例如:UIView *view = [[UIView alloc] init];UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,100)];这两个有什么区别呢??明显,下面那个initWithFrame是带一个名为Frame参数的转载 2015-01-23 13:28:22 · 779 阅读 · 0 评论 -
Objective-C 指针理解
1、一个指针变量就是一个包含其它变量地址的变量2、int x=4; &x得到的是x在内存中的地址3、声明一个指针变量 int *y (为什么是int类型的哪?)4、y = &x; 将x的内存地址存储到指针变量y中5、指针变量前加个【*】星号,得到的就是指针所指向内存存储空间内的值,*y的值是4,它就等同于表达式x转载 2015-01-23 13:42:39 · 366 阅读 · 0 评论 -
Objective-C中的self和super
发送消息给self和superObjective C提供了两个保留字self和super,用于在方法定义中引用执行该方法的对象。例如,假设你定义了一个方法reposition,用来修改它所处理的某个对象的坐标,这时可以调用setOrigin::方法来完成修改。要实现这个目标,要做的工作就是将setOrigin::消息发送给一个对象,这个对象与reposition消息的接收对象是同一个。在编转载 2015-01-24 14:30:36 · 297 阅读 · 0 评论