MonoTouch和Objc @Synchronized和makeObjectsPerformSelector

时间:2012-11-30 14:19:36

标签: c# objective-c xamarin.ios objective-c-blocks

我只是将一些Objective-C代码移植到MonoTouch,但我被困在这里

UIColor *color = ARandomColor(); // ARandomColor Returns a Random UIColor ;)
@synchronized(self) {
    [_annotationDict enumerateKeysAndObjectsUsingBlock:^(NSNumber *page, NSArray *annotations, BOOL *stop) {
        [annotations makeObjectsPerformSelector:@selector(setColor:) withObject:color];
        [self.providerDelegate updateAnnotations:annotations originalAnnotations:nil animated:YES];
    }];
}

MonoTouch@synchronized等效的enumerateKeysAndObjectsUsingBlock是什么?

亚历

1 个答案:

答案 0 :(得分:5)

@synchronized(self)应转换为c#中的lock(this)

我相信-enumerateKeysAndObjectsUsingBlock:或多或少只是一个foreach或for循环,所以你只需要做类似的事情

foreach (Type t in _annotationDict) {

}