ios 可变字典存放数组的时候,会把所有的key的value都替换成目前的key所对应的值

问题描述

ios 可变字典存放数组的时候,会把所有的key的value都替换成目前的key所对应的值

请问是什么原因?
我打个比方
可变数组 mDiC,它里面为key1=1,key2=2.
当我setobject for key---》 key3=3;
他就把可变字典mDic里面的values全部替换成3.
也就是 mDic里面:key1=3,key2=3,key3=3

解决方案

所有的value是不是同一个变量

解决方案二:

感觉是底层指向同一个地址的数据,然后修改了所指向的地址的数据导致的?是不是指向了同一个变量?

时间: 2024-12-08 00:55:49

ios 可变字典存放数组的时候,会把所有的key的value都替换成目前的key所对应的值的相关文章

对象-ios 往可变字典添加object会覆盖到上一个key的值啊!!怎么解决!有代码~~

问题描述 ios 往可变字典添加object会覆盖到上一个key的值啊!!怎么解决!有代码~~ self.arr=[NSMutableArray new]; self.dic=[NSMutableDictionary new]; [self.arr addObjectsFromArray:@[@"1",@"2",@"3"]]; [self.dic setObject:self.arr forKey:@"key1"]; [sel

使用 NSPropertyListSerialization 持久化字典与数组

NSPropertyListSerialization The NSPropertyListSerialization class provides methods that convert property list objects to and from several serialized formats. Property list objects include NSData, NSString, NSArray, NSDictionary, NSDate, and NSNumber

ios-iOS中在类别中动态新增了的可变字典属性变成了不可变字典

问题描述 iOS中在类别中动态新增了的可变字典属性变成了不可变字典 想在category中新增个属性来用,创建的可变字典属性,也做了相关关联,结果用不了setobject方法,打印出来一看发现变成了不可变字典类型,希望有大神帮我看看哪里出问题了: static void *myAllPropertiesDicKey = &myAllPropertiesDicKey; @implementation FatherClass (Category) //add setter and getter me

JSONString 与 JSONData 与字典或者数组互相转化

JSON JSON相关的,数据彼此间的转化进行了简单地封装,源码如下,支持arc与非arc YXJSON.h + YXJSON.m // // YXJSON.h // // JSONString 与 JSONData 与 字典或者数组互相转化 // // Copyright (c) 2014年 YouXian. All rights reserved. // #import <Foundation/Foundation.h> @interface YXJSON : NSObject /** 将

将字典或者数组转换成JSON数据或者字符串

将字典或者数组转换成JSON数据或者字符串 源码: NSDictionary+JSON.h 与 NSDictionary+JSON.m // // NSDictionary+JSON.h // Category // // Created by YouXianMing on 15-2-09. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import <Foundation/Foundation.h> @interfa

oc-有没有字典转成可变字典的简单有效的方法

问题描述 有没有字典转成可变字典的简单有效的方法 想转成可变字典有没有什么简单有效的方法 解决方案 用一个对象包装下,这样对象本身不能修改,但是对象的成员可以修改. 解决方案二: java基础-数值运算中的类型转换问题

ios中怎么定义数组常量?

问题描述 ios中怎么定义数组常量? static const NSArray *imgArr = @[@"引导页1",@"引导页2",@"引导页3"]; 我这样写,报错:initializer element is not a compile-time constant 请问要怎么写? 解决方案 IOS:定义常量iOS 常量和全局变量的定义关于iOS一些常量定义的技巧 解决方案二: 全局变量必须被初始化为一个恒定的值, 如果你想有一个全局变量,

c++-关于C++ vector中存放数组,出现问题

问题描述 关于C++ vector中存放数组,出现问题 我想定义一个vector,里面放几个数组,每个数组长度为2,数组的值由控制台输入. 先定义两个整数M,N,N表示vector中数组的数目,M是另外一个整数,答主可以不必关心. 当M=N=-1时跳出循环.整数J,F是存储在数组中的值,也由控制台输入. 然后对vector排序,排序规则定义在cmp函数中,按照J/F的值由大到小排序. 比如:对于{[7,2],[4,3],[5,2]},排序后为{[7,2],[5,2],[4,3]} 代码如下: #

《数据结构与抽象:Java语言描述(原书第4版)》一2.2 使用可变大小的数组实现ADT包

2.2 使用可变大小的数组实现ADT包 数组有固定的大小,在数组创建前,这个大小或者由程序员选择,或者由用户选择.固定大小的数组像是一间教室.如果教室含有40把椅子但只有30名学生,我们会浪费10把椅子.如果40名学生上课,则教室是满的,且不能再容纳其他任何人.类似地,如果没用到数组中的所有位置,则浪费了空间.如果需要更多的,则运气不佳.所以,使用固定大小的数组实现ADT包,限制了包的大小.当数组满了因此也是包满了时,对add方法的后续调用都返回假.有些应用可以使用具有有限容量的包或其他集合.但