考虑以下常见情况:
你MainView的Cocoa应用程序中有一些是从NIB加载的,它由a控制MainViewController.你MainView包含一些控件,比如a UILabel infoLabel.您还有一个委托MyDelegate类,它接收某种事件.
您希望确保在MyDelegate收到其事件时,infoLabel已适当更新.但是,问题是MyDelegate没有引用MainView或MainViewController不知道标签.
一种解决方案是传递MainViewController对委托对象的引用,但这感觉不对,因为您可能会发现自己处于对象具有彼此引用的不良情况.
解决这个问题的正确设计是什么?
在Xcode中,我声明了一个前向类,以避免循环导入,例如
@class MyClass;
Run Code Online (Sandbox Code Playgroud)
然后我对该类进行方法调用,例如
[MyClass myMethod];
Run Code Online (Sandbox Code Playgroud)
但我得到了一个前瞻性的警告,例如
警告:接收者'MyClass'是一个前向类,相应的@interface可能不存在
如何在整个项目中隐藏这些内容?
有人可以解释使用#import语句包含额外的头文件和使用@class之间的区别.例如
//MyClass.h
#import <Foundation/foundation.h>
#import "someOtherClass.h"
Run Code Online (Sandbox Code Playgroud)
要么
//MyClass.m
#import"MyClass.h"
@class someOtherClass
implementation
Run Code Online (Sandbox Code Playgroud)
当我尝试使用第二种方法时,它并不总是有效.
如果相同的概念适用于同一场景的C++,我现在也想
谢谢