iOS 5 требует соединения ARC - PullRequest
1 голос
/ 02 марта 2012

Я следую руководству, и я не уверен, как преобразовать этот код, чтобы он работал без ошибок с включенной ARC.

- (void)setHourHandImage:(CGImageRef)image
{
if (image == NULL) {
    hourHand.backgroundColor = [UIColor blackColor].CGColor;
    hourHand.cornerRadius = 3;
}else{
    hourHand.backgroundColor = [UIColor clearColor].CGColor;
    hourHand.cornerRadius = 0.0;

}
hourHand.contents = (id)image;

Единственная часть, которая дает мне ошибку, -(id) изображение;

Также

w = CGImageGetWidth((CGImageRef)hourHand.contents);

(CGImageRef) minHand.contents);выдает ошибку

Спасибо

1 Ответ

15 голосов
/ 02 марта 2012

Вам нужно __bridge приведение.

hourHand.contents = (__bridge id)image;

и

w = CGImageGetWidth((__bridge CGImageRef)hourHand.contents);

Приведение __bridge сообщает ARC, что это приведение никак не влияет на владение объектом. Альтернативы - __bridge_retained и __bridge_transfer, которые обычно используются через функции CFBridgingRetain() и CFBridgingRelease().

...