Deployment TargetがiOS6.0以上の場合、GCDのオブジェクトもARCの管轄下になるらしいです。   以下のStack Overflowによると<os/object.h>というヘッダに書かれているそうです。
Why is ARC complaining about dispatch_queue_create and dispatch_release in iOS 6?

これが適用される場合にはdispatch_releaseなどに対してXcodeが警告を出してくれます。

で、GCDのオブジェクトをプロパティとして持つ場合にどうしたらいいのか、
ちょっと迷ったので、dispatch_semaphore_tを例に書いておきます。

Deployment Targetが6.0未満の場合

@interface ISHoge ()

@property (nonatomic, assign) dispatch_semaphore_t semaphore;

@end

@implementation ISHTTPOperation

- (id)init
{
    self = [super init];
    if (self) {
        _semaphore = dispatch_semaphore_create(1);
    }
    return self;
}

- (void)dealloc
{
    dispatch_release(_semaphore);
}

Deployment Targetが6.0以上の場合

@interface ISHoge ()

@property (nonatomic, strong) dispatch_semaphore_t semaphore;

@end

@implementation ISHoge

- (id)init
{
    self = [super init];
    if (self) {
        _semaphore = dispatch_semaphore_create(1);
    }
    return self;
}

どっちでも大丈夫にしたい場合

ライブラリをつくったりする場合です。

@interface ISHoge ()

#if OS_OBJECT_USE_OBJC
@property (nonatomic, strong) dispatch_semaphore_t semaphore;
#else
@property (nonatomic, assign) dispatch_semaphore_t semaphore;
#endif

@end

@implementation ISHoge

- (id)init
{
    self = [super init];
    if (self) {
        _semaphore = dispatch_semaphore_create(1);
    }
    return self;
}

- (void)dealloc
{
#if !OS_OBJECT_USE_OBJC
    dispatch_release(self.semaphore);
#endif
}

 

間違ってたら教えてください。

追記(3/22)

Twitterで@nakiwo さんにOS_OBJECT_USE_OBJCを教えて頂きました。

こちらのほうが__IPHONE_OS_VERSION_MIN_REQUIREDより適切ですので、
__IPHONE_OS_VERSION_MIN_REQUIRED < 60000としていたところを
OS_OBJECT_USE_OBJCに 置き換えました。

さらに追記

#ifdefではなく#ifに修正しました。