首页 > 其他分享 >Objective-C中遇到的一个比较郁闷的总是for中修改不了字典中的值

Objective-C中遇到的一个比较郁闷的总是for中修改不了字典中的值

时间:2023-02-06 19:35:25浏览次数:67  
标签:NSUTF8StringEncoding 郁闷 NSString params key Objective 字典 data pm


Objective-C中遇到的一个比较郁闷的总是for中修改不了字典中的值
从群里问了一下别人说用迭代器修改,用for只能遍历获取值不能修改字典中的值,
这总是比较郁闷,以为没总是的代码一运行就不行
下面把代码放上:

+(NSMutableDictionary*) paramEncrypt:(NSMutableDictionary*) params{
if (!params) return params;

//这种用for的方式不能个性字典中的值
// NSMutableDictionary* newParams = [NSMutableDictionary dictionaryWithCapacity:0];
//
// for (NSString* key in [params keyEnumerator]) {
// NSData *data = [[params objectForKey:key] dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
// NSString* pm = [[NSString alloc] initWithData:[GTMBase64 encodeData:data] encoding:NSUTF8StringEncoding];
// [LogUtil d:@"%@",pm];
[params setObject:pm forKey:key]; //不能用这种方式会报错,好像是在for中被锁了
// [newParams setObject:pm forKey:key];//这种方式也不好还得新建一个浪费内存
// }

//只能用此迭代器的方式个性里面的值
[params enumerateKeysAndObjectsWithOptions:NSEnumerationReverse usingBlock:^(id key, id obj, BOOL *stop) {
NSData *data = [[params objectForKey:key] dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString* pm = [[NSString alloc] initWithData:[GTMBase64 encodeData:data] encoding:NSUTF8StringEncoding];
[params setObject:pm forKey:key];
}];
return params;
}

标签:NSUTF8StringEncoding,郁闷,NSString,params,key,Objective,字典,data,pm
From: https://blog.51cto.com/u_15955464/6040297

相关文章

  • objective-c enum 与 typedef的区别
    enum和typedef,在两个小节中书中分别出现了2个例子,如下enumdirection{north,south,east,west};typedefenum{north,south,east,west}dir......
  • 在Objective-C里定义枚举和结构体
    typedefenum{kCircle,kRectangle,kOblateSpheroid}ShapeType;typedefenum{kRedColor,kGreenColor,kBlueColor}ShapeColor;typedefstruct{intx,y,width,height;......
  • objective-c <>协议
    objective-c协议为不同的类提供公用的方法协议定义了一组方法,而不提供具体实现。它定义了其它对象有责任实现的接口。当在自己的类中实现协议的方法......
  • 四、python——字典
    alien_0={'color':'green','points':5}print(alien_0['color'])print(alien_0['points'])print(alien_0)alien_0['x_position']=0alien_0['y_position']=25......
  • Objective-C语法学习 第一天
    关于引用计数的内存管理1.内存管理必要性ARC是MacOSX10.7和iOS5引入的新特性,也是苹果公司推荐是用的内存管理方法。启用ARC后,编译器会在适当的地方自动加入retain,releas......
  • 字典树
    字典树(Trie树),又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。......
  • Python之字典删除元素(6种方式)
    文中代码smart_girl={"name":"yuanwai","age":25,"address":"Beijing"} 第一种方式:pop()方法注意:找不到对应的key,pop方法会抛出异常KeyErrorsmart_gi......
  • Python3之列表、元组、字典
    列表   列表是最常见的Pyhon数据结构  访问列表中的值,与字符串的索引一样,列表索引从0开始,第二个索引是1,依此类推  索引也可以从尾部开始,最后一个元素的......
  • python基础:字典的内置方法、元组的内置方法、集合的内置方法、字符编码
    目录一、字典的内置方法1、类型转换(把其他类型转换成自己的类型)2、取值3、修改数据值4、增加数据值5、删除数据值1.del方法2.pop方法6、统计字典中键值对的个数7、字典三......
  • Python之字典修改元素(4种方式)
    哈喽兄弟们,今天咱们来学习一下Python字典修改元素的四种方式。本文中使用的字典对象:smart_girl={"name":"yuanwai","age":25} 第一种方式:[key]smart_......