我之前问过这个问题,但也许我没有正确地问。 我有一个cocoa应用程序,除其他外,必须执行以下任务: - 从磁盘加载一些图像,将它们存储在一个数组中并在自定义视图中显示它们。
在Interface Builder中,我有一个CustomView和一个指向TexturesController.h的OBJECT
自定义视图是一个自定义类TextureBrowser。 下面是控制器和视图的代码:
TexturesController
#import <Cocoa/Cocoa.h>
@class TextureBrowser;
@interface TexturesController : NSObject {
IBOutlet NSTextField *logWindow;
IBOutlet TextureBrowser *textureView;
NSMutableArray *textureList;
}
@property textureView;
-(IBAction)loadTextures:(id)sender;
-(IBAction)showTexturesInfo:(id)sender;
@end
TextureBrowser
@interface TextureBrowser : NSView {
NSMutableArray *textures;
}
@property NSMutableArray *textures;
-(void)loadTextureList:(NSMutableArray *)source;
@end
这些只是标题。现在,我需要做的是:
我尝试从视图中使用 - (void)loadTextureList:(NSMutableArray *)源方法,但是在TextureController.m中我得到一个警告:找不到-loadTextureList方法
这就是我称之为方法的方法:
[textureView loadTextureList: textureList];
即使我在那里发出警告并运行它,视图类中的数组也不会被初始化。
也许我错过了一些东西......也许有人可以给出一个简单的例子,说明我需要做什么以及如何做(代码)。
提前致谢。
答案 0 :(得分:1)
在TexturesController.m
中,您必须导入TextureBrowser.h
,以便控制器知道属性textureView
具有哪些方法。现在,您只有一个空白的占位符符号而不是实际的类。
由于textureView
是由插座定义的,因此您需要确保在Interface Builder中正确设置了其类。如果您提供通用NSView,它将不具有loadTextureList:
方法。
答案 1 :(得分:0)
如果你在TexturesController.m中导入了TextureBrowser.h,我不明白为什么它找不到你的方法。
但为什么不简单地从TexturesController调用self.textureView.textures = textureList;
?