黑马程序员——Foundation学习笔记(NSSet和NSMutableSet)


==========android培训、ios培训java培训、期待与您交流==========

一、NSSet:

 NSSet

  NSSet里面存储的元素没有顺序,NSArray中的元素有顺序。

  NSSet *s = [NSSet set]; // 创建一个空的Set,永远是空,不可变。

  NSSet *s2 = [NSSet setWithObjects:@"jack",@"rose",nil];

  NSString *str = [s2 anyObject]; // 随机取出一个元素

NSMutableSet

  NSMutableSet s = [NSMutableSet setWithObject:@"jack"];

  [s addObject:@"rose"];

  [s removeObject:(id)];

二、NSDictionary和NSMutableDictionary

 <1>NSDictionary

创建一个NSDictionary 不可变
NSDictionary 是没有顺序的

key ------> value
键值对

// 创建方法
NSDictionary *dict = [NSDictionary dictionaryWithObject:(id)
forKey:(id<NSCopying>)];

NSDictionary *dict = [NSDictionary
dictionaryWithObject:@"jack" forKey:@"name"]
[dict objectForKey:(id)];


NSLog(@"%@",obj);


创建方法二

NSArry *keys =
@[@"name",@"adress"];
NSArry *values = @[@"jack",@"北京"];


NSDictionary *dict = [NSDictionary dictionaryWithObjects:values
forKeys:keys];

创建方法三:
NSDictionary *dict = [NSDictionary
dictionaryWithObjectsAndKeys:
@"jack",@"name",
@"北京",@"adress",
@"351868695",@"qq",
nil];
id
obj = dict objectForKey:@"qq"];

创建方法四:
编译器特性:
//
注意返回NSDictionary类型 创建可变字典不能用这中方法
NSDictionary *dict = @{@"name" :
@"jack",@"adress" : @"北京"};

id obj =
dict[@"name"];
NSLog(@"%@",obj);

dict.count;//
返回键值对的个数





<2>NSMutableDictionary

NSMutableDictionary *dict = [NSMutableDictionary dictionary];

[dict setObject:@"jack" forKey:@"name"];
[dict setObject:@"北京"
forKey:@"adress"];

[dict setObject:@"rose" forKey:@"name"]; // 把jack覆盖,
dict.count ;// 还是2 因为
rose覆盖了jack

[dict removeObjectForKey:(id)];

打印字典:
NSLog(@"%@",dict);结果是

{
adress = \U5317\U4eac;
name = rose;
}

字典的遍历
方法一:
NSDictionary *dict =
@{@"qq" : "123",@"name" : @"jack"};
NSArray *keys = [dict allKeys]; //
该方法把字典中所有的key返回来,存到一个数组中,注意这里是无序的
for(int i = 0; i<dict.count;
i++)
{
NSString *key = keys[i];
NSString *object = dict[key]; //
根据key的值取出value

NSLog(@"%@ = %@",key,object);
}

方法二:

[dict enumerateKeysAndObjectsUsingBlock:
^(id key, id obj,BOOL
*stop){
NZLog(@"%@ - %@",key, obj);
}];


==========android培训、ios培训java培训、期待与您交流==========

黑马程序员——Foundation学习笔记(NSSet和NSMutableSet),布布扣,bubuko.com

时间: 2024-10-14 20:17:53

黑马程序员——Foundation学习笔记(NSSet和NSMutableSet)的相关文章

黑马程序员——Foundation学习笔记(二)

--- android培训.java培训.IOS培训,期待与您交流! ---- [1]上个笔记写NSString,其实开发常用的则是NSMutableString类的字符串,字面意思就是,后者是可变的,而前者是不可变的,其实这也是他们的本质区别.下面的就在码中进行详细表述: NSString * s1 = @"yeahming";//创建不可变的字符串 //这里并没有提供可以改变s的任何方法,但是有一个和[ss appendFormat:@" best"];相似的,

黑马程序员_OC学习笔记之Foundation框架集合类

OC--集合类 1.OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等 2.OC数组是以对象的方式存在,因此在创建的时候需要为创建的对象前面加* 3.NSArray数组一旦创建就决定了是不是可变,而且永远是可变或不可变 4.NSArray数组和子类NSMutableArray的基本操作: 1>使用NS

黑马程序员-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学习笔记之@property和@synthesize

[objc] view plaincopyprint? <span style="font-size:24px;">#import <Foundation/Foundation.h> @interface Person : NSObject { int _age; int age; int _height; int height; int _weight; int weight; int _money; int money; } @property int ag

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

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

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

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

黑马程序员_OC学习笔记之description方法和sel

OC--description方法 1.Description方法包括类方法和对象方法.(NSObject类所包含) -description(对象方法) 2.使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出. +description(类方法) 3.使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@. 4.使用@%打印对象如(“@%”,P)默认打印输出为<

黑马程序员-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