- 不要等到明天屿附,明天太遙遠袄琳,今天就行動铸敏。
須讀:看完該文章你能做什么带污?
如何將一個MRC的項目 轉(zhuǎn)成 ARC
學(xué)習(xí)前:你必須會什么?(在這里我已經(jīng)默認你具備C語言的基礎(chǔ)了)
什么是ARC,什么是MRC
一痕钢、本章筆記
MRC 轉(zhuǎn) ARC 項目
1.> Edit -> Convert -> To Objective-C ARC
二图柏、code
main.m
#pragma mark 07-ARC?MRC
#pragma mark 概念
/*
MRC 轉(zhuǎn) ARC 項目
1.> Edit -> Convert -> To Objective-C ARC
*/
#pragma mark - 代碼
#import <Foundation/Foundation.h>
#pragma mark 類
#import "Person.h"
#import "Dog.h"
#import "Bone.h"
#pragma mark - main函數(shù)
int main(int argc, const char * argv[])
{
Person *p = [[Person alloc]init];
Dog *d = [[Dog alloc]init];
Bone *b = [[Bone alloc]init];
return 0;
}
Person
>>>.h
#import <Foundation/Foundation.h>
@class Dog;
@interface Person : NSObject
@property (nonatomic, strong) Dog *dog;
@end
>>>.m
#import "Person.h"
#import "Dog.h"
@implementation Person
- (void)dealloc
{
NSLog(@"%s",__func__);
}
@end
Dog
>>>.h
#import <Foundation/Foundation.h>
@class Bone;
@interface Dog : NSObject
@property(nonatomic, strong)Bone *bone;
@end
>>>.m
#import "Dog.h"
#import "Bone.h"
@implementation Dog
- (void)dealloc
{
NSLog(@"%s",__func__);
// Receiver type 'Bone' for instance message is a forward declaration
}
@end
Bone
>>>.h
#import <Foundation/Foundation.h>
@interface Bone : NSObject
@end
>>>.m
#import "Bone.h"
@implementation Bone
- (void)dealloc
{
NSLog(@"%s",__func__);
}
@end
1.MRC轉(zhuǎn)ARC流程圖
image.png
image.png
2.出現(xiàn)錯誤的情況
image.png
2.1定位到錯誤
image.png
缺少導(dǎo)入頭文件
image.png
3.沒有錯誤
image.png
注意:對比每個MRC文件修改之后 變成ARC的面板(左邊是轉(zhuǎn)換之后,右邊是轉(zhuǎn)換之前)【如果項目比較龐大比較大的可能轉(zhuǎn)換失敗,建議先拷貝項目再進行轉(zhuǎn)換】
image.png