objective-c – 子类化时转发声明vs #import

前端之家收集整理的这篇文章主要介绍了objective-c – 子类化时转发声明vs #import前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有MyClassA,它具有MyClassB类型的属性
//
//  MyClassA.h
//  

@interface MyClassA : NSObject

@property (strong,nonatomic,readonly) MyClassB *myClassB;

@end

MyClassB有一个属性myString.

//
//  MyClassB.h
//  

@interface MyClassB : NSObject

@property (copy,readonly) NSString *myString;

@end

我有MyClassC需要在它的实现中访问myString.

我是不是该 –

a)在MyClassA.h中转发声明MyClassB,在MyClassC.m中声明#import“MyClassB.h”

要么

b)在MyClassA.h中#import MyClassB.h

解决方法

通常,您应该在头文件中尽可能使用@class转发声明.您可能不希望这样做的唯一时间是从超类继承或声明协议一致性,因为编译器需要知道该类或协议中发生了什么.

对于这个例子,我会在头文件中使用@class进行所有属性声明,在MyClassC.m文件中使用#import MyClassB.h.这将允许MyClassC了解MyClassB上的所有属性.

原文链接:https://www.f2er.com/c/117983.html

猜你在找的C&C++相关文章