0

親クラスNetworkingと2人の子Upload : NetworkingがありDownload : Networkingます。ネットワーキングにはパブリック@property (readonly) BOOL isExecuting;とがあり@property (readonly) BOOL isDone;ます。子クラス内からそれらにアクセスする必要がありますが、操作は別々のスレッドで行われるため、スレッドセーフな方法でアクセスします。

それを実装するためのエレガントな方法は何ですか?ありがとう!

編集:それで私はそれを正しく取得しますか?これはUpload.mの例です

#import "Upload.h"
#import "Networking.h"

@interface Upload ()

@property (assign) BOOL isExecuting;

@end

@implementation Upload

- (void) setIsExecuting:(BOOL)isExecuting{
    @synchronized (self) {
        _isExecuting = isExecuting;
    }
}
4

1 に答える 1

0

プロパティは読み取り専用であるため、その値を変更するスレッドはありません。したがって、どのスレッドでも、いつでも同じ値を取得できます。

したがって、それについて心配する必要はありません。

于 2013-01-19T18:47:56.620 に答える