Objective-Cで配列がどのように処理されるのか、少し混乱します。 私はそのような私が「Y」に最初に出現を変更するにはどうすればよいNSArray内の要素をどのように変更しますか?
NSarray *myArray = [[NSArray alloc]
initWithObjects:@"N", @"N", @"N", @"N", @"N",
nil];
として配列を持っている場合は?
Objective-Cで配列がどのように処理されるのか、少し混乱します。 私はそのような私が「Y」に最初に出現を変更するにはどうすればよいNSArray内の要素をどのように変更しますか?
NSarray *myArray = [[NSArray alloc]
initWithObjects:@"N", @"N", @"N", @"N", @"N",
nil];
として配列を持っている場合は?
..
NSMutableArray *myArray = [[NSMutableArray alloc]
initWithObjects:@"N", @"N", @"N", @"N", @"N",
nil];
、その後
[myArray replaceObjectAtIndex:0 withObject:@"Y"];
NSArray
は不変なので、できません。しかし、代わりにNSMutableArray
を使用すると、それを行うことができます。 replaceObjectAtIndex:withObject:
を参照してください:
[myArray replaceObjectAtIndex:0 withObject:@"Y"]
すばやくご回答いただきありがとうございます。 – Namhcir
を書くヘルパーメソッドを今すぐ
-(NSArray *)replaceObjectAtIndex:(int)index inArray:(NSArray *)array withObject:(id)object {
NSMutableArray *mutableArray = [array mutableCopy];
mutableArray[index] = object;
return [NSArray arrayWithArray:mutableArray];
}
あなたがこのメソッドをテストすることができます
NSArray *arr = @[@"a", @"b", @"c"];
arr = [self replaceObjectAtIndex:1 inArray:arr withObject:@"d"];
logObject(arr);
これはあなたが
を出力NSDictionary *dict = @{@"name": @"Albert", @"salary": @3500};
dict = [self replaceObjectWithKey:@"salary" inDictionary:dict withObject:@4400];
logObject(dict);
でそれをテストすることができますNSDictionaryの
-(NSDictionary *)replaceObjectWithKey:(id)key inDictionary:(NSDictionary *)dict withObject:(id)object {
NSMutableDictionary *mutableDict = [dict mutableCopy];
mutableDict[key] = object;
return [NSDictionary dictionaryWithDictionary:mutableDict];
}
のための同様の方法を使用することができます
arr = (
a,
d,
c
)
を出力
dict = {
name = Albert;
salary = 4400;
}
これをカテゴリとして追加して、簡単に利用できるようにすることもできます。
ありがとうございました。非常に感謝しています。 – Namhcir