Я новичок в объективе-c, и я не совсем понимаю, почему работает следующее. Почему мне не нужно возвращать строку из частного метода, чтобы в методе validateAcessCode строка была изменена? Является ли это потому, что NSMutuableString
работает в локальных методах с той же ссылкой на строку, которую я передал ей? Это причина?NSMutuableString модификация
- (void)replaceCharachters:(NSMutableString *)code {
[code replaceOccurrencesOfString: @"J" withString: @"a" options:0 range:NSMakeRange(0, [code length])];
[code replaceOccurrencesOfString: @"H" withString: @"b" options:0 range:NSMakeRange(0, [code length])];
[code replaceOccurrencesOfString: @"Y" withString: @"c" options:0 range:NSMakeRange(0, [code length])];
}
-(IBAction)validateAccessCode:(id)sender {
NSMutableString *code = [NSMutableString stringWithFormat:@"%@", accessCode.text];
[self replaceCharachters:code];
}
Хорошо, потому что я прихожу из Java. И если бы я передал String методу и работал над ним, он просто изменился бы в рамках этого локального метода. Но это, вероятно, потому, что java создает новую строковую ссылку, если я делаю замену ... – krackmoe
Право. Строка Java эквивалентна NSString Objective-C, которая неизменна. –