В книге, которую я сейчас читаю, я напишу следующий код:
-(IBAction)displaySomeText:(id)sender {
NSString *cow = @"Milk";
NSString *chicken = @"Egg";
NSString *goat = @"Butter";
NSArray *food = [NSArray arrayWithObjects:cow, chicken, goat, nil];
NSString *string = @"The shopping list is: ";
string = [string stringByAppendingString:[food componentsJoinedByString:@", "]];
[textView insertText:string];
}
Я немного понимаю, как работают массивы, но мне нужна помощь для понимания следующего кода
string = [string stringByAppendingString:[food componentsJoinedByString:@", "]];
Я никогда не видел случая, когда это возможно.
Он заставил меня создать объект 'string' из класса NSString
, а затем я делаю это
string = [string stringByAppendingString:];
Я в замешательстве. Я никогда не видел пример, где я создаю объект, а затем выполняю метод для того же объекта и сохраняю его в этом же объекте.
Например, я знаю, что могу это сделать
NSSound *chirp;
chirp = [NSSound soundNamed:@"birdChirp.mp3"];
вышесказанное имеет смысл, потому что я использовал созданный объект и выполнил на нем метод класса ..
но я всегда предполагал, что эквивалент следующего кода НЕ возможен
chirp = [chirp methodNameEtc..];
Надеюсь, я хорошо объяснил свой вопрос. Если бы не я, я всегда мог бы уточнить дальше.