0
說我有以下方法調用進行:鏈多個方法調用,等到所有人都在Objective-C完成
[[[[Foo init] addString:@"one"] addString:@"one"] addString:@"three"]
其中foo包含:
@implementation Foo {
NSString *string;
}
- (void)addString:(NSString *)text {
string = [string stringByAppendingString:text];
}
說我想等待直到所有addString
方法完成並且想要打印「onetwothree」,但我不知道addString
將被調用多少次。我將如何實現這一目標?我試圖做到這一點使用dispatch_group
如:
@implementation Foo {
NSString *string;
}
- (id)init {
// setup
[self complete];
string = @"";
}
- (void)addString:(NSString *)text {
dispatch_group_async(group, queue,^{
string = [string stringByAppendingString:text];
NSLog(@"%@", text);
}
}
- (void)complete {
dispatch_group_notify(group,queue, 0),^{
NSLog(@"Final String: %@", string);
});
}
但這打印:
一個 最終的字符串: 兩個 三
任何想法如何,我可以完成這件事?
爲什麼不使用簡單的循環? – schmidt9
停止條件是什麼? –
用你想要連接的單詞循環數組,在退出時輸出結果字符串 – schmidt9