8
วัตถุประสงค์ -C ARC: แข็งแรงเทียบกับการคงไว้และอ่อนแอเทียบกับการมอบหมาย
มีสองคุณลักษณะการจัดการหน่วยความจำใหม่สำหรับคุณสมบัตินำโดย ARC มีและstrongweak นอกเหนือจากcopyสิ่งที่เห็นได้ชัดว่าแตกต่างอย่างสิ้นเชิงมีความแตกต่างระหว่างstrongvs retainและweakvs assign? จากความเข้าใจของฉันความแตกต่างเพียงอย่างเดียวที่นี่คือweakจะกำหนดnilให้กับตัวชี้ในขณะที่assignไม่ได้ซึ่งหมายความว่าโปรแกรมจะหยุดทำงานเมื่อฉันส่งข้อความไปยังตัวชี้เมื่อมีการเปิดตัว แต่ถ้าฉันใช้weakสิ่งนี้จะไม่เกิดขึ้นเพราะข้อความที่ส่งถึงnilจะไม่ทำอะไรเลย ผมไม่ทราบว่าเกี่ยวกับความแตกต่างใด ๆ ระหว่างและstrongretain มีเหตุผลใดบ้างที่ฉันควรใช้assignและretainในโครงการใหม่หรือเป็นประเภทที่ถูกคัดค้าน?