ios给NSMutableDictionary循环赋值的两种方式,在循环内初始化NSMutableDictionary和在循环外初始化NSMutableDictionary有何区别?(已解决)

NSMutableArray * arrayName = [NSMutableArray
array];

NSMutableArray * array = [NSMutableArray
array];

[array removeAllObjects];

for (int i =
0; i< 10; i++) {

NSString * str = [NSString
stringWithFormat:@"name%i",i];

[arrayName
addObject:str];

}

// 方式一
在for循环内初始化字典dict,每次循环都初始化一个新字典,并在循环内加入数组,数组存了10个不同的字典

for (int i =
0; i< 10; i++) {

NSMutableDictionary * dict = [NSMutableDictionary
dictionary];

NSString * value = [NSString
stringWithFormat:@"Female%04i.JPG",i];

NSString * key = arrayName[i];

[dict
setObject:value forKey:key];

[array
addObject:dict];

}

NSLog(@"%@*************",array);

//
方式二 在for循环外初始化字典dict,再循环外初始化可变字典,在循环内每次循环在字典内添加键值对,将存有十个键值对的一个字典赋给数组

NSMutableArray * array2 = [NSMutableArray
array];

NSMutableDictionary * dict2 = [NSMutableDictionary
dictionary];

for (int i =
0; i< 10; i++) {

NSString * value = [NSString
stringWithFormat:@"Female%04i.JPG",i];

NSString * key = arrayName[i];

[dict2
setObject:value forKey:key];

}

[array2
addObject:dict2];

NSLog(@"%@____________",array2);

//    从打印结果可以很清楚的看到两者的区别

//    因为对字典的理解不是很深刻:只是简单地想着他存着键值对,但是他实际可以存n个键值对(若在给可变字典设置键值对前每次都初始化可变字典则每个字典只有一个键值对)

ios给NSMutableDictionary循环赋值的两种方式,在循环内初始化NSMutableDictionary和在循环外初始化NSMutableDictionary有何区别?(已解决)ios给NSMutableDictionary循环赋值的两种方式,在循环内初始化NSMutableDictionary和在循环外初始化NSMutableDictionary有何区别?(已解决)

时间: 2024-10-07 10:54:08

ios给NSMutableDictionary循环赋值的两种方式,在循环内初始化NSMutableDictionary和在循环外初始化NSMutableDictionary有何区别?(已解决)的相关文章

android/IOS常用图片上传的两种方式

android/IOS常用图片上传的两种方式: 1.上传到服务器的文件服务器(FileServer) 原理:上传到文件服务器的方式是先在服务器端搭建文件服务器,配置好路径(url),该路径是我们待会上传图片的路径,配置成功后便通过http+post的模式上传到文件服务器,同时文件服务器将返回一个图片ID,这个ID就是图片的唯一标识,并将该ID写入数据库保存,当需要下载该图片时只需要将此ID带上即可. 两个核心问题: (1)服务端:配置FileServer,并写处理响应上传图片的代码,这个值得去网

java基础复习之对于String对象,可以使用“=”赋值,也可以使用new关键字赋值,两种方式有什么区别?

String类型是实际工作中经常用到的类型,从数据类型上划分,String是一个引用类型,是API中定义的一个类.所以String类型的对象可以用new创建,例如String name=new String("string");为变量name进行赋值,值为"string" ,然而String类比其他类有些特殊,可以使用'='直接赋值,如 String name="string";也是为变量name进行赋值,值为"string"

iOS中创建单例的两种方式

刚刚开始做iOS开发的时候,不知道怎么创建单例,在网上搜的也大多数都不太全,所以总结了一下创建单例的两种方式 首先在.h文件中声明类方法 1 +(instancetype)sharedUtils; 然后在.m文件中实现它,实现的方法有两种 第一种,在创建一个对象时先判断在程序中有没有创建过这个对象 1 static PublicUtils *DefaultManager = nil; 2 3 +(instancetype)sharedUtils 4 { 5 if (!DefaultManager

iOS:创建单例对象的两种方式

单例模式:创建单例对象的两种方式 方式一:iOS4版本之前 static SingleClassManager *singleManager = nil; +(SingleClassManager*)sharedManager { @synchronized(self)  //同步加锁,在多线程中使用,可以使线程安全 { if(singleManager == nil) { singleManager = [[SingleClassManager alloc]init]; } } return

java基础复习之对于String对象,能够使用“=”赋值,也能够使用newkeyword赋值,两种方式有什么差别?

String类型是实际工作中经经常使用到的类型,从数据类型上划分,String是一个引用类型,是API中定义的一个类.所以String类型的对象能够用new创建,比如String name=new String("string");为变量name进行赋值,值为"string" ,然而String类比其它类有些特殊,能够使用'='直接赋值,如 String name="string";也是为变量name进行赋值,值为"string&quo

iOS UIWebview添加请求头的两种方式

1.在UIWebviewDelegate的方法中拦截request,设置request的请求头,废话不多说看代码: - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSString *urlString = [[request URL]  absoluteS

IOS开发使用NSXMLParser、GDataXML两种方式解析XML数据

概括:XML数据解析方式有 *IOS原生的NSXMLParser,只支持SAX方式解析,使用简单 *C语言的libxml2,同时支持DOM和SAX方式解析 *google的GDataXML,只支持DOM方式解析,基于libxml2,使用时需要将编译环境配置为非ARC,并添加libxml2.dylib动态库 GDataXMLDocument 1 使用GDataXML的DOM方式解析XML,需要导入#import "GDataXMLNode.h" /** *  DOM方式解析XML数据 *

spring之级联属性赋值的两种方式

Car.java package com.gong.spring.beans; public class Car { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Car [name=" + name + &qu

.net给类赋值的两种方式

//第一种 List<FlightRefit> ls = new List<BPMSwebService.FlightRefit>(); ls.Add(new FlightRefit() { Id = 1,Agent="李四" }); ls.Add(new FlightRefit() { Id = 2 }); //第二种 FlightRefit[] fr = new FlightRefit[]{ new FlightRefit{Id=3,Agent="