思路
MRC管理中难点在于类调用时若提前释放会导致指针指向nil引发程序崩溃,在DEMO中,将关闭ARC,通过手动调用retain和release来实现计数增减,控制对象的占用和释放
实践过程
首先关闭ARC,在编译设置里面可以关闭
设计思路,使用面向对象例子中常用的Car作为例子,Car包含四个Tire,Car有自己的名字,每个Tire有自己的编号。
初始化Car的时候Car自身变量调用retain方法,计数+1。在这个思路下我写了酱紫的代码:
//
// main.m
// MRCTest
//
// Created by PhantomX on 2017/2/23.
// Copyright © 2017年 HCI. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Car.h"
int main(int argc, const char * argv[]) {
//@autoreleasepool {
Car *car = [[Car alloc]initWithName:@"Benz"];
NSLog(@"%@",car->tire->tireIndex);
[car release];
// insert code here...
NSLog(@"Hell