我想连接我的两个类,并用每个类的属性相互链接。我分解了这个例子的主要方面:
Ocean.h文件:
#import <Foundation/Foundation.h>
#import "Fish.h"
@interface Ocean : NSObject
@property (nonatomic) NSArray *listOfFishesInOcean;
@end
Fish.h 文件:
#import <Foundation/Foundation.h>
#import "Ocean.h"
@interface Fish : NSObject
@property (nonatomic) Ocean *homeOcean; // Compiler: "Unknown type name Ocean"
@property (nonatomic) int age;
@end
我最后想做的是操作 Fish 对象的 age 属性并能够保存它(listOfFishesInOcean、NSUserDefaults),以及在保存完成时调用 Ocean 对象中的函数。这样我的海洋对象列表中就会始终包含最新的鱼类对象列表。
我的两个问题是:
- 如何避免 import-loop ,我认为这会导致编译器错误?
- 最终应该如何实现保存和操作流程?
我想过用通知和观察者来解决这个问题,但这样我仍然需要以任何方式过滤通知,因为我有多个海洋和更多的鱼。 解决它的另一个想法是给每个 Ocean 对象和 Fish 对象一个 ID,我将再次将其用作 NSUserDefaults 中的键。
如果有人对此有什么想法或其他想法,非常欢迎!
最佳答案
仅在“.m”文件中导入“.h”文件,如:
Ocean.h文件:
#import <Foundation/Foundation.h>
@class Fish;
@interface Ocean : NSObject
@property (nonatomic) NSArray *listOfFishesInOcean;
@end
Ocean.m文件:
#import "Ocean.h"
#import "Fish.h"
@implementation Ocean
@end
Fish.h 文件:
#import <Foundation/Foundation.h>
@class Ocean;
@interface Fish : NSObject
@property (nonatomic) Ocean *homeOcean;
@property (nonatomic) int age;
@end
Fish.m 文件:
#import "Fish.h"
#import "Ocean.h"
@implementation Fish
@end
关于ios - Objective-C - 避免导入循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38974196/