@ पास्कल द्वारा दिए गए उत्तर पर विस्तार करना मैं बस यह जोड़ना चाहता हूं कि यह निश्चित रूप से सही काम है और आप यह देखकर जांच सकते हैं कि कोड किस प्रकार संकलित करता है। _objc_storeStrong
करने के लिए कॉल जो according to LLVM करता
.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}
नोट:: मैं कैसे की जाँच के बारे में जाने के लिए, लेकिन मूल रूप से है कि कोड (ARMv7) करने के लिए नीचे संकलित बारे में blog post लिखा
id objc_storeStrong(id *object, id value) {
value = [value retain];
id oldValue = *object;
*object = value;
[oldValue release];
return value;
}
तो, जवाब देने के लिए आपका सवाल, हाँ यह सही है। एआरसी ने पुराने मूल्य की सही रिलीज में जोड़ा है और नए मूल्य को बनाए रखा है।
[शायद जटिल जवाब से अधिक है, लेकिन सोचा था कि यह कैसे आप भविष्य में खुद के लिए एआरसी संबंधित प्रश्न इस तरह का जवाब देने के बारे में जा सकते हैं दिखाने के लिए उपयोगी था]
हां, यह मेरे लिए सही लग रहा है। क्या यह काम कर रहा है कि आप कैसे उम्मीद करते हैं या नहीं? –