0

我可以摆脱这个吗,或者编译器会代表我以同样的方式优化 BOOL 原子?

@interface IDBWebpValidationOperation()

// I suppose I could get away with nonatomic properties cause I write single byte properties
@property (assign, nonatomic, getter = isExecuting) BOOL executing;
@property (assign, nonatomic, getter = isFinished) BOOL finished;

@end

@implementation IDBWebpValidationOperation

@synthesize executing = _executing;
@synthesize finished = _finished;

-(BOOL)isFinished
{
    return _finished;
}

- (void)setFinished:(BOOL)finished {
    [self willChangeValueForKey:@"isFinished"];
    _finished = finished;
    OSMemoryBarrier();
    [self didChangeValueForKey:@"isFinished"];
}

-(BOOL)isExecuting
{
    return _executing;
}

- (void)setExecuting:(BOOL)executing {
    [self willChangeValueForKey:@"isExecuting"];
    _executing = executing;
    OSMemoryBarrier();
    [self didChangeValueForKey:@"isExecuting"];
}

PS 对于这两个不经常访问的特定属性,我猜这种过早的优化是没用的,但我想知道这在幕后是如何工作的,所以这个问题可能仍然有用(对我来说,如果不是其他任何人的话;-)

4

0 回答 0