黑马程序员——OC学习总结--Founation框架

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

1.常用结构体

在 Founation 框架中 对NSRange NSPoint NSrect NSSize 有了定义

他们常这样被创建:

#import <Founation/Founation.h>

void main(){

@autoreleasepool{

//Range的使用

NSRange rang=NSMakeRange(10,34);//指定一个起止范围

//CGRang rang=CGPiontMake(10,34);//用CGRange也可以定义

NString *str=stringFormRange(rang);//字符串打印

NSLog(@"rang=%@",str);

//Rect的使用

包含 x y width height

NSRect rect=NSMakeRect(2,3,45,32);

//CGRect rect=CGRectMake(2,3,45,32)

NSString *str2=stringFormRect(rect);

}

}

2.NSString 的使用

NSString 不可变字符串 是OC一个对象,需要释放内存,静态方法调用则不用释放

#import <Founation/Founation.h>

void main(){

@autoreleasepool{

NSString *string=[[NSString alloc] init]//创建一个NSString

[email protected]"fff";

[string release];

NSString *str=[[NSString initWithFormat:@" his age is %i",24];//字符串格式化输出

[str release];

//静态方法调用

NSString *str1=[NSString stringWithString:@"fffff"];

NSString *str2=[NSString stringWithFormat:@"fffff %i",34];

NSLog(@"%@%@",str,str2);

}

}

3.NSMutableString 的使用

是一个可变字符串 也需要管理内存

#import <Founation/Founation.h>

void main(){

@autoreleasepool{

[NSMutableString * str=[[NSMutableString alloc] initWithCapacity:10]//预分配10字数存储空间 提高效率

[str setString:@"ss"];

[str appendString:@"fff"];//拼接字符串

[str appendFormat:@"ffff age is %i and heighe is %2f",23,1,72];//格式化输出

[str release];

}

4.NSArray 不可变 数组

#import <Founation/Founation.h>

void main(){

@autoreleasepool{

NSArray *arr=[NSArray arrayWithObjects:@"jh",@"wk",@"4",@"5",nil];//定义数组

[arr objectAtIndex:2];//取出第三个元素

[arr indexOfObject:@"wk"];//取出角标

[arr lastObject];//取出最后一个元素

[arr count];//提取元素个数

//遍历

int i=0;

for(id ob in arr){

NSLog("%i\t%@",i,obj);

i++;

//排序

NSArray *array=[NSArray arrayWithObjects:@"34",@"4",@"55",@"2",nil]

NSArray *arr2=[array sortedArrayUsingSeletcor:@seletcor(compare:)];//排序好返回一个新数组

NSLog(@"%@",arr2);

}

}

5.NSMutableArray 可变数组 

#import <Founation/Founation.h>

void main(){

@autoreleasepool{

NSMutableArray arr=[NSMutableArray  array];

[arr addObject:@"ff"];//添加内容

[arr removeObject:@"ff"]//删除内容

Student *s=[[Student alloc] init];

[arr addObject:s]; //retain 一次

[arr removeObject:s]//release 一次

[s release];

[arr release]

//数组被释放时会对所有的元素 都做一次release操作

//排序

NSMutableArray arr=[NSArray arrayWithObjects:@"4",@"3",@"5",@"2",nil]

[arr sortUsingSeletcor:@seletcor(compare:)];//排序好返回本身

NSLog(@"%@",array);

}

6.NSDictionary 不可变字典

#import <Founation/Founation.h>

void main(){

@autoreleasepool{

NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys:@"v1",@"v2",@"v3",@"k1",@"k2",@"k3",nil];

id v_= [dict objectForKey:@"k2"];//字典取值  只能取不能改

[dict count];//字典所有元素个数

[dict allValues];//字典所有值 只能取不能改

[dict allKeys];//字典所有Key

//遍历

for(id key in dict){

id value=[dict objectForKey:key];

NSLog(@"%@--%@",key,value);

}

}

 

 7.NSMutableDictionary不可变数组

#import <Founation/Founation.h>

void main(){

@autoreleasepool{

NSMutableDictionary *dit=[NSMutableDictionary  dictionary];

[dict setObject:@"v2" forkey:@"k2"];//添加元素

[dict removeAllObjects];//删除所有的键值对

[dict [email protected]"k2"]//删除key对象的value

//字典销毁时会对每个元素release一次

}

 

9.NSNumber的 使用

#import <Founation/Founation.h>

void main(){

@autoreleasepool{

NSNumber *n=[NSNumber  numberWithInt:100];//将int类型10 包装成NSNumber对象

NSArray *arr=[NSArray arrayWithObject:num];

id num=[arr lastObject];//从数组取出

int n1=[num intValue];//转化成 int类型

NSLog(@"n1=%i",n1);

}

运行结果为:n1=100

10. NSDate 的使用

#import <Founation/Founation.h>

void main(){

@autoreleasepool{

NSDate *date=[NSDate date];//创建日期

date=[NSDate dateWithTimeIntervalSinceNow:20]; //返回一个比现在快20 秒的时间

[date distantFuture];//自动返回一个未来遥远的时间

[date distantPast];//随机返回 过去的一个时间

NSDateFormatter *format=[[NSDateFormatter alloc] init];

[email protected]"yyyy-MM-dd  HH:mm:ss";// 格式化日期时间

NSString *str=[format stringFromDate:date];//日期格式转化成字符串

NSDate date1=[format dateFromString:@"2008-08-08 07:34:43"];//字符格式转化成日期格式

NSLog(@"str=%@",srt);

NSLog(@"date=%@".date1);

[format release];

}

运行结果:

时间: 2024-11-06 14:12:00

黑马程序员——OC学习总结--Founation框架的相关文章

黑马程序员——OC学习小结------Foundation框架

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.常用的结构体 NSRange (location,length) NSPoint\CGPoint (x,y) NSSize\CGSize (width, height) NSRect\CGRect (CGPoint,CGSize) NSRange void range() { /* @"i love oc" love的范围 NSRange r1 = {2, 4}; // 不用 N

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSNumber 前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了. 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象.

黑马程序员-OC学习笔记之Foundatio框架集合类

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.OC数组 OC数组是一个类,它也分不可变数组NSArray和可变数组NSMutableArray. 1?不可变数组的创建 // 创建一个不可变数组,元素为一个OC字符串对象 @"小桥" NSArray *array1 = [NSArray arrayWithObject:@"小桥"]; // 创建一个不可变数组,元素为多个O

黑马程序员-OC学习笔记之block

过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9426    Accepted Submission(s): 4151 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做par

黑马程序员-OC学习笔记之ARC

---------------------- IOS开发.Android培训.期待与您交流! ----------------------一.什么是ARC        ARC是自动引用计数,苹果官方在Xcode4.2及以后版本中加入的一个内存管理机制,完全取代了程序员人工的内存管理,使得程序员只须关心程序本身.使用ARC,编译器会自动在代码中加入内存管理代码,是一个编译器特性,而不是运行时特性,当然,它也和JAVA的垃圾回收不同,它的本质和手动的内存管理是一样的,只是这些代码编译器会自动添加.

黑马程序员-OC学习笔记之NSString与NSMutableString

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSString与NSMutableString 相信大家对NSString类都不陌生,它是OC中提供的字符串类,它的对象中的字符串都是不可变的,而它的子类NSMutableString类的对象中的字符串就是可变的.什么是可变与不可变呢?二者的区别就是在已经创建的一个字符串对象中,在程序中能不能更改字符串,比如拼接新的字符串,可变的可以在原字符串中更改,

黑马程序员——OC学习笔记—— Copy

黑马程序员——OC学习笔记—— Copy ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- copy 即对象拷贝 要使用对象数据而不希望修改对象时,可以使用copy copy叫做浅拷贝  mutablecopy深拷贝 copy需要遵守NSCopying协议,实现CopywithZone方法 MutableCopy也一样要遵守相应协议 注意: OC中copy复制的对象都是不可变的  mutablecopy复制的是可变副本 浅拷贝:只拷贝地址,不

黑马程序员-OC学习笔记之autorelease与自动释放池

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.autorelease autorelease与release相似,是OC中的一个对象方法.这两个方法都能把对象的引用计数器减1,但是release是一个精确的减1,对对象的操作只能在release之前进行,如果是在之后,就会出现野指针错误:而autorelease是一个不精确的引用计数器减1,当给对象发送autorelease消息时,对象就会被放到自动

黑马程序员-OC学习日记-对象与方法、对象与函数

------- ios培训. android培训.java培训.期待与您交流! ---------- 一.NSString类简介 1.NSString是OC中用来表示字符串的一个类 2.NSString类创建 (1)通过字面量方式创建 NSString * str = @"要努力学习!"; (2)通过对象方法创建 NSString * str1 = [NSString alloc]; str1 = [str1 initWithUTF8String:"今天雾霾好大!"