1

我是objective-c的新手,我不完全理解,为什么以下是有效的。为什么我不必从私有方法返回字符串,以便在 validateAcessCode 方法中更改字符串?是因为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];
}
4

2 回答 2

1

您只是在使用指向实际字符串的指针。两种方法都使用该指针,因此它们访问内存中的同一个对象。

于 2013-07-07T11:42:38.067 回答
0

validateAccessCode:方法被调用sender,大概是一个具有文本字段的 UI 对象。此方法在调用时会更改字段中的文本replaceCharachters:,因此无需返回任何内容。

于 2013-07-07T11:41:55.623 回答