@ पास्कल द्वारा दिए गए उत्तर पर विस्तार करते हुए मैं यह जोड़ना चाहूंगा कि यह निश्चित रूप से सही काम है और आप यह देख कर देख सकते हैं कि कोड क्या संकलन करता है। मैंने एक ब्लॉग पोस्ट लिखा कि कैसे चेकिंग के बारे में जाना जाए, लेकिन मूल रूप से वह कोड नीचे (ARMv7) के लिए संकलित है:
.align 2
.code 16
.thumb_func "-[Article setImageURLString:]"
"-[Article setImageURLString:]":
push {r7, lr}
movw r1, :lower16:(_OBJC_IVAR_$_Article._imageURLString-(LPC7_0+4))
mov r7, sp
movt r1, :upper16:(_OBJC_IVAR_$_Article._imageURLString-(LPC7_0+4))
LPC7_0:
add r1, pc
ldr r1, [r1]
add r0, r1
mov r1, r2
blx _objc_storeStrong
pop {r7, pc}
नोट कॉल करने के लिए _objc_storeStrong
जो LLVM के अनुसार इस करता है:
id objc_storeStrong(id *object, id value) {
value = [value retain];
id oldValue = *object;
*object = value;
[oldValue release];
return value;
}
तो, आपके प्रश्न का उत्तर देने के लिए, हाँ यह सही है। एआरसी ने पुराने मूल्य के सही रिलीज और नए मूल्य को बनाए रखने में जोड़ा है।
[संभवत: जटिल उत्तर पर, लेकिन सोचा कि यह दिखाना उपयोगी है कि आप भविष्य में इस तरह के एआरसी से संबंधित प्रश्न का उत्तर कैसे दे सकते हैं]