- 浏览: 774253 次
- 性别:
- 来自: 天堂
文章分类
最新评论
-
xiaozhao-521:
呀呀呀呀呀呀呀
RequestTest222 -
Andy_hyh:
打扰了,问下openmeeting源码可以运行起来吗?
Openmeetings安装 详细步骤 -
qindongliang1922:
擦,现在还行么,厉害
北京免费吃饭的地方 -
minixx77:
...
Openmeetings安装 详细步骤 -
wwwqqqiang:
喜欢楼主分享问题的方式,有思想
UIView 和 CALayer的那点事
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; //创建字符串 NSString *height; /**类方法: +(id) stringWithFormat: (NSString *) format,... 通过格式字符串和参数来创建NSString 省略号(。。。):可以接受多个以逗号分割的参数。 这声明方法时添加加号(+),那么这个方法为类方法,不需要创建实例就可以调用,通常用于创建心的实例,我们称用来创建新对象的类方法为工厂方法。 ------------------- objective-c运行时生成一个类的时候,它会创建一个代表该类的类对象。类对象包含了指向超类的指针,类名,和指向类方法列表的指针。类对象还包含一个long型数据,为新创建的类实例对象指定大小(以字节为单位) 类方法可以用来访问全局数据。 实例方法要用前导减号(-)来开始声明 */ height=[NSString stringWithFormat:@"you heigh is %d feet,%d inches",5,11]; NSLog(height); //length 返回字符串中字符的个数。-(unsigned int) length; if([height length]>5){ NSLog(@"height length ------"); } //字符串比较 /** isEqualToString :可以用来比较接收方和当作参数传递来的字符串的内容是否相同,返回yes和no */ NSString *thing1=@"hello"; NSString *thing2=[[NSString alloc] initWithString:@"hello"]; if([thing1 isEqualToString:thing2]){ NSLog(@"they are same"); } /** ==:只判断指针数值,而不是它们所指向的内容 */ if(thing1==thing2){ NSLog(@"== same"); } /* compare:比较两个字符串。区分大小写 compare将接收对象和传递来的字符串逐个字符的进行比较,它返回一个NSComparisonResult(枚举类型)来显示结果。 typedef enum _NSComparisonResult{ NSOrderedAscending=-1; NSOrderedsame; NSOrderedDescending; } NSComparisonResult; */ [thing1 compare:thing2]; if(NSOrderedSame==[thing1 compare:thing2]){ NSLog(@"compare same"); } //compare:options: /*** -(NSComparisonResult) compare:(NSString *) string options:(unsinged) mask; options 是一个位掩码,可以使用|添加选项标记 选项: NSCaseInsensitiveSearch:不区分大小写字符 NSLiteralSearch:进行完全比较,区分大小写 NSNumbericSearch:比较字符串的字符个数,而不是字符值 */ if([thing1 compare:thing2 options:NSCaseInsensitiveSearch| NSNumericSearch]==NSOrderedSame){ NSLog(@"they match"); } /** 以某个字符串开始或结尾 -(BOOL) hasPrefix:(NSString *) aString; -(BOOL) hasSuffix:(NSString *) aString; */ NSString *fileName=@"aabbbcc"; if([fileName hasPrefix:@"aa"]){ NSLog(@"begin with aa"); } if([fileName hasSuffix:@"cc"]){ NSLog(@"end with cc"); } //NSMutableString 可变字符串 //SString 是不可变的,一旦NSString 被创建了,我们就不能改变它。 //+(id) stringWithCapacity:(unsinged) capacity; capacity:是给NSMutableString的一个建议,字符串的大小并不局限于所提供的大小,这个容量仅是个最优值。 NSMutableString *str=[NSMutableString stringWithCapacity:40]; [str appendFormat:@"sdfsdf%d",5]; [str appendString:@"ssssssss"]; NSLog(str); //删除字符串 //-(void) deleteCharactersInRange:(NSRange) range; NSMutableString *ms; ms=[NSMutableString stringWithCapacity:50]; [ms appendString:@"aabbccdd"]; NSRange range; range=[ms rangeOfString:@"cc"]; [ms deleteCharactersInRange:range]; NSLog(ms); //与实例方法一样,继承对类方法也同样适用 //------------------集合-------------- //NSArray ,NSDictionary /** NSArray 是一个cocoa类,用来存储对象的有序列表。 NSArray有两个限制:1,它只能存储objective-c的对象,而不能存储c语言中的基本数据类型如int,float,enum,struct,或者nsarray中的随机指针。2,不能这nsarray中存储nil 类方法: arrayWithObjects:创建一个新的nsarray。发送一个以逗号分割的对象列表,这列表结尾添加nil代表列表结束,(这就是不能这nsarray中存储nil的原因) */ NSArray *array=[NSArray arrayWithObjects:@"aa",@"bb",@"cc",nil]; //-(unsigned) count; 取得包含对象的个数 //-(id) objectAtIndex:(unsigned int) index; 取得索引位置的对象 int i; for (i=0; i<[array count]; i++) { NSLog(@"index %d has %@",i,[array objectAtIndex:i]); } //------------切分数组 //-componentsSeparatedByString: NSString *ns=@"sdf,dsfs,dfd,fdf,df,dd"; NSArray *comArr=[ns componentsSeparatedByString:@","]; for(int i=0;i<[comArr count];i++){ NSLog(@"componentsSeparatedByString===%@",[comArr objectAtIndex:i]); } //componentJoinedByString: 合并nsarray中的元素来创建字符串 NSString *joinedStr=[comArr componentsJoinedByString:@"-->"]; NSLog(@"joined---= %@",joinedStr); //可变数组 NSMutableArray *mutableArr=[NSMutableArray arrayWithCapacity:40]; [mutableArr addObject:@"aa"]; [mutableArr addObject:@"bb"]; [mutableArr addObject:@"cc"]; [mutableArr addObject:@"dd"]; for(int i=0;i<[mutableArr count];i++){ NSLog(@"mutableArr==%@",[mutableArr objectAtIndex:i]); } //----- -(void) removeObjectAtIndex:(unsinged) index; 删除指定索引的对象, //删除一个对象之后,数组中并没有留下漏洞,被删除对象后面的数组元素的哦被前移来填补空缺 [mutableArr removeObjectAtIndex:2]; for(int i=0;i<[mutableArr count];i++){ NSLog(@"removeObjectAtIndex == %@",[mutableArr objectAtIndex:i]); } //枚举 //NSEnumerator ,它是cocoa用来描述这种集合迭代运输的方法 //-(NSEnumerator *) objectEnumerator; NSEnumerator *enumerator=[mutableArr objectEnumerator]; id thingie; while(thingie=[enumerator nextObject]){ NSLog(@"i found %@",thingie); } //快速枚举 for(NSString *string in mutableArr){ NSLog(@"for in == %@",string); } //NSDictionary 字典 /* NSDictionary 是在给定的关键字(通常是一个NSString字符串)下存储一个数值(可以是任何类型的对象)。然后你可以用这个关键字来查找相应的数值。 NSDictionary 是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。 +(id) dictionaryWithObjectAndKeys:(id) firstObject,....; 该方法接收对象和关键字交替出现的系列,以nil值作为终止符号。 **/ NSDictionary *dic=[NSDictionary dictionaryWithObjectsAndKeys:@"aaa",@"a",@"bbb",@"b",nil]; NSString *dicStr=[dic objectForKey:@"a"]; if([dicStr isEqualToString:@"aaa"]){ NSLog(@"------------00000000000000000"); } //可变字典 NSMutableDictionary *mutableDic=[NSMutableDictionary dictionaryWithCapacity:50]; [mutableDic setObject:@"1111" forKey:@"1"]; [mutableDic setObject:@"222" forKey:@"2"]; //删除 -(void) removeObjectForKe:(id) key; [mutableDic removeObjectForKey:@"2"]; NSArray *keyArr=[mutableDic allKeys]; for(NSString *str in keyArr){ NSLog(@"key== %@",str); NSLog(@"value== %@",[mutableDic objectForKey:str]); } //各种数值,NSNumber NSValue /* cocoa 提供了NSNumber类来包装基本数据类型 +(NSNumber *) numberWithChar:(char) value; +(NSNumber *) numberWithInt:(int) value; +(NSNumber *) numberWithFloat:(float) value; +(NSNumber *) numberWthiBool:(BOOL) value; -(char) charValue; -(int) intVlaue; -(float) floatValue; -(BOOL) boolValue; -(NSString *) stringValue; **/ NSNumber *number; number=[NSNumber numberWithInt:3]; [mutableDic setObject:number forKey:@"int"]; int num=[[mutableDic objectForKey:@"int"] intValue]; NSLog(@"int object value== %d",num); //NSValue .NSNumber实际上是NSValue的子类,NSValue可以包装任意值 /** +(NSValue *) valueWithBytes:(const void *) value objCType:(const char *) type; 传递的参数是你想要包装的数值的地址,通常,得到的是你想要存储的变量的地址(在c语言里适用操作符 & ),你也可以提供一个描述这个数据类型的字符串,通常用来说明struct中实体的类型和大小。你不用自己写代码 来生成这个字符串,@encode编译器指令可以接受数据类型的名称并为你生成合适的字符串 */ NSRect rect= NSMakeRect(1, 2, 30, 40); NSValue *value; value=[NSValue valueWithBytes:&rect objCType:@encode(NSRect)]; NSMutableArray *mr=[NSMutableArray arrayWithCapacity:50]; [mr addObject:value]; //getValue 提取数据 /** -(void) getValue:(void *) value; 要传递的是存储这个数值的变量的地址 */ /*** value=[mr objectAtIndex:0]; NSRect r; NSLog(@"00000 ===%@",r); [value getValue:&r]; NSLog(@"111== %@",r); */ /** +(NSValue *) valueWithPoint:(NSPoint) point; +(NSValue *) valueWithSize:(NSSize) size; +(NSValue *) valueWithRect:(NSRect) rect; -(NSPoint) pointValue; -(NSSize) sizeValue; -(NSRect) rectValue; */ //NSNull /* *+(NSNull *) null; */ [mutableDic setObject:[NSNull null] forKey:@"fax"]; id fax; fax=[mutableDic objectForKey:@"fax"]; if(fax==[NSNull null]){ NSLog(@"pppppppppppppppppp"); } [pool drain]; return 0; }
- Foundation.zip (1.6 MB)
- 下载次数: 11
发表评论
-
iOS 自定义UIActionSheet
2012-12-18 16:07 16425一:模态视图 UIActi ... -
UIView 和 CALayer的那点事
2012-11-17 23:51 30786UIView 和 CALayer的那点事 (1 ... -
iOS Open Source : Popover API for iPhone
2012-01-20 15:02 1948http://iphonedevelopertips.com/ ... -
ios 任务、线程、定时器
2011-12-26 18:09 8032一:operations(任务) cocoa提供了三种 ... -
ios url缓存策略——NSURLCache、 NSURLRequest
2011-12-26 17:09 24362一:url 缓存策略 NSURLRequest ... -
ios NSInvocation简单使用
2011-12-22 16:39 6381在ios直接调用某个对象的消息是方法有两种: 一:perfo ... -
iphone 对Web Services的三种请求方式soap get post
2011-11-09 10:57 6447一:Using SO AP 1.1 POST / ... -
sdk3.2手势实例
2011-11-09 10:11 1747#import <UIKit/UIKit.h>@i ... -
关于iphone 利用hpple解析html的问题
2011-08-04 18:28 2229最近在用happe解析html中的图片。有个翻页操作,如果请 ... -
iphone hpple 解析html,xml
2011-07-19 16:21 2757使用Objective-C解析HTML或者XML,系统自带有两 ... -
激活 iPhone通过 GPRS 连接服务器功能的代码
2011-05-13 15:14 1663如果您的 iPhone 应用里含有连接服务器的功能,也许会遇到 ... -
address book api 图型
2011-04-28 15:51 1151最近要搞地址簿了,整理一下 -
[OmniGraffle]iPhone app原型制作工具
2011-04-06 17:35 3962在写程序之前,我们通常需要做一些mockup出来(不知道款爷有 ... -
自定义uislider 样式
2011-04-04 21:28 3844UIImage *stetchLeftTrack= [[UII ... -
iphone 下AsyncSocket网络库编程
2011-04-02 21:04 7649iphone的标准推荐CFNetwork ... -
进阶AlertView运用 - 登入设计
2011-04-01 17:52 3044说明:示范如何利用AlertView来制作系统登入的介面程式碼 ... -
iPad UIPopoverController弹出窗口的位置和坐标
2011-04-01 17:42 2008优化规则: TodoViewControlle ... -
iPhone系统自动化测试
2011-04-01 17:39 2626首先mac系统是必备的2 安装iPhone SD ... -
iphone上面编写具有root权限的程序
2011-04-01 17:31 6303正常途径下, 我们编写的程序发布在App store上, 使用 ... -
聊天。。。。。
2011-04-01 17:13 1096是得分手段
相关推荐
### Objecive-C编码规范指南 #### 前言 Objecive-C作为一种面向对象的编程语言,在开发iOS和macOS应用中具有重要的地位。为了提高代码的可读性和维护性,制定一套统一的编码规范至关重要。本指南旨在提供一套标准化...
2. **类与对象**:Objective-C基于C语言,增加了类的概念。类是对象的蓝图,定义了对象的属性(ivar)和行为(方法)。对象是类的实例,通过`alloc`和`init`方法创建。 3. **类别(Category)**:Objective-C允许你...
项目工具这是自动写白包工具,秒级别写H5游戏壳包,可视化操作,极易使用,支持Swift、Objecive-C双语言[ 官网 ]这是一个白包目录示例 ProjectTool安装环境macOS 10.13+ (不支持Windows)红宝石xcodeproj (Ruby开源库...
5. Blocks(区块/闭包):Objective-C的匿名函数,常用于异步操作和回调。 四、Foundation框架与UIKit框架 Foundation框架是Objective-C的基础框架,提供了数据类型、集合类、线程、文件系统等基本功能。UIKit框架...
- **目标技能**:通过本教程的学习,学生将能够掌握使用Objective-C语言编写iOS应用程序的基础知识,特别是如何在计算器应用中处理变量输入和表达式计算。 - **所需工具**:Apple电脑、Xcode开发环境。 #### 课程...
ios开发基础objective c 初学者适合学的oc基础