- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 NSMutableDictionary,里面有一系列用于节的元素。我需要更改子部分中的其中一个元素。
所以我从返回的对象创建了一个 NSMutableDictionary,我想修改它,然后在主 NSMutableDictionary 中替换它。
int intTagToFind = 1;
NSLog(@"Finding tag %u",intTagToFind);
for (int i=0; i < returnDict.count; i++){
NSString *keyString = [NSString stringWithFormat: @"section%03d",i];
NSMutableDictionary *sectionData = [returnDict objectForKey:keyString];
for (int j=0; j<sectionData.count; j++) {
int myTag = [[sectionData objectForKey:@"tag"] intValue];
if (myTag == intTagToFind){
NSLog(@"Found Tag: %u %u",myTag,intTagToFind);
NSLog(@"Key to finding is %@",keyString);
NSLog(@"Header is:%@",[sectionData objectForKey:@"section header"]);
NSLog(@"Class: %@",[sectionData class]);
NSLog(@"Class: %@",[returnDict class]);
[sectionData setObject:@"new header here" forKey:@"section header"];
NSLog(@"New Header is:%@",[sectionData objectForKey:@"section header"]);
}
}
}
它给出:[__NSDictionaryI setObject:forKey:]: 无法识别的选择器发送到实例 0x7f9414110080
当我创建 sectionData 时:NSMutableDictionary *sectionData = [returnDict objectForKey:keyString];
它返回的类名是 __NSDictionaryI 而 returnDict 是类名:__NSDictionaryM
为什么给我错误的类型?不能从 objectForKey 获取可变字典吗?
下面是将数组转换成字典的代码:
NSMutableDictionary *returnDict = [[NSMutableDictionary alloc] init];
for(int i=0; i < [returnData count] - 1; i++)
{
[returnDict setObject:[returnData objectAtIndex:i+1] forKey:[NSString stringWithFormat: @"section%03d", i]];
}
下面是数组的示例:
NSArray *returnData = @[ @{ @"section header": @"Business News",
@"sub header": @"Investing news",
@"sub header scroll": @"0",
@"sub button": @"Delete",
@"tag":@"0",
@"articles": @[ @{ @"title": @"One" },
@{ @"title": @"Longer" },
@{ @"title": @"Even Longer" },
@{ @"title": @"Still Much Longer" },
@{ @"title": @"Really Long Title Here Now." }
]
},
我使用“标签”作为唯一 ID。
我创建数组,将数组加载到字典中,然后想要更改其中的元素,如标题、按钮等...使用标记作为唯一 ID。
最佳答案
这段代码:
NSMutableDictionary *sectionData = [returnDict objectForKey:keyString];
不创建可变字典。它在键 keyString 处获取 returnDict 中的所有内容,并将其转换为 NSMutableDictionary 类型。底层对象不会改变。
此时您实际上已经共享了 returnDict 对象的所有权。如果对象在 returnDict
内是不可变的,它将保持不可变。
您可能想要这样做:
NSDictionary *immutableSectionData = [returnDict objectForKey:keyString];
NSMutableDictionary *sectionData = [immutableSectionData mutableCopy];
(上面的代码被分成两行,只是为了方便在狭窄的 SO TextView 中阅读。)
事实上,如果您帖子中的第二个代码块是您创建数据结构的方式,那么整个事情都是不可变的。您将无法更改任何内容。
关于ios - 设置对象 : forKey: crashes when used on multi-dim NSMuteableDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37150041/
VBA 的奇怪行为: 这会在第 3 行出现错误 94“非法使用 Null”: Function test1() Dim a As String a = Null test1 = a End
我有以下代码 double[,] var = new double[5,10]; double[] var2 = new double[10]; int a; for (a=0;a<10;a++)
如何链接CSVTypeColumn = CSVType01 = "AL" ? 如果 CSVTypeColumn.value = CSVType01然后CSVTypeColumn.value = "AL
在 VBA 中,我可以通过以下两种方式之一创建对象: 'First way Dim myCol1 As New Collection 'Second way Dim myCol2 As Collect
在假设将分配不必要的大量内存的情况下,我总是害怕将事物声明为变体。 最近致力于提高电子表格的性能,但我得到了相反的印象(见下面的编辑):Dim myarray() as Variant与 Dim my
这可能听起来微不足道,但它们之间的区别是什么? Dim v As String() 和 Dim v() As String 在 VB.NET 中? 最佳答案 没有不同。来自 VB.NET Langua
在此代码中: Dim files() As String = Directory.GetFiles("C:/") Dim files As String() = Directory.GetFiles(
如何将二维 Numpy 数组中的所有列堆叠到一维数组中。 即我有: x = np.array([[1, 3, 5],[2, 4, 6]]) 我想得到: np.array([1, 2, 3, 4, 5,
我是 Theano 的初学者,我正在使用另一个代码的示例,大概在某个时候可以工作(但是,我修改了它......但我很确定我的修改无关目前出了什么问题)。 无论如何,我正在尝试调试 Theano 扫描.
在 Matlab 中没有一维数组的概念。所有数组至少有两个维度。所有“向量”都是“行向量”(1xn 数组)或“列向量”(nx1 数组)。 另一方面,在 NumPy 中,数组也可以是一维的。于是就有了“
有什么区别: Dim s As String 和 Dim s As [String] 最佳答案 没有区别。 在 VB 中,您可以将标识符括在括号中,以强制将其解析为标识符而不是关键字。 例如,你可以写
这个问题已经有答案了: 已关闭10 年前。 Possible Duplicate: What’s different between Dim files() As String and Dim fil
我的应用程序已经能够设置显示器关闭的超时时间,以及设置全部内容,并且还可以设置当前的亮度。 Windows 有一项附加功能,可以在一段时间后调暗显示器(高级电源使用方案设置中的“稍后调暗显示器”和“显
如前所述,我有一个一维矩阵向量,例如: P_predefined = [[.3 .4 .2 .1], [.2 .3 .5 0.], [.1 0. .8 .1], [.4 0. 0. .6]] 我想把它
Duplicate Whats the difference between declaring as new and as something new something i 遗憾的是我不知道这一点
这是一个简单的概念,但我从未被教导过。有人可以解释一下以下两种说法之间的区别吗: Dim c as MyClass Dim c as New MyClass 最佳答案 Dim c as New MyC
在我们的 VB.net 代码库中,我偶尔会看到 Dim x as new Y() ,其中 Y 是一个类。 这段代码是做什么的,它与更常见的 Dim x as Y = new Y()" 有何不同? ?
def __init__(self): super().__init__() self.conv = nn.Sequential( nn.Con
ndarray crate 的示例使用以下代码,其中 Array::random返回类型是 ArrayBase : let a = Array::random((hash_size, inp_dime
在 python 中,我希望从 1-dim 数组中逐行减去 2-dim 数组。 我知道如何使用“for”循环和索引来完成它,但我想使用 numpy 函数可能会更快。但是我没有找到办法。这是一个带有“f
我是一名优秀的程序员,十分优秀!