2010-06-17 99 views
0

有一點問題,我問過它之前,但也許我沒有問得好。 我有一個可可應用程序,除其他外,必須執行以下任務: - 從磁盤加載一些圖像,將它們存儲在一個數組中並將它們顯示在自定義視圖中。可可 - 從CONTROLLER調用查看方法

在界面生成器我有一個CustomView和指向TexturesController.h

自定義視圖是一個自定義類,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 

這些只是頭。現在,我需要做的是:

  • 當從TexturesController loadTextures叫,之後我加載圖片,我想這個數據發送到視圖(TextureBrowser),例如,其存儲在NSMutableArray裏*紋理。

我嘗試使用 - (空)loadTextureList:(NSMutableArray的*)從查看源代碼的方法,但在TextureController.mi得到一個警告:沒有-loadTextureList方法找到

這是我如何調用方法:

[textureView loadTextureList: textureList]; 

即使我運行它的警告留在那裏,視圖類中的數組不會被初始化。

也許我錯過了一些東西......也許有人可以給我一個簡單的例子,我需要做什麼以及如何去做(代碼)。

在此先感謝。

+0

請張貼一些TextureView.h,以便我們可以看到@interface。 – JBRWilkinson 2010-06-17 20:40:26

+0

TextureView是TextureBrowser ...必須在最後調用View嗎? 感謝格式化Geoff,我無法弄清楚:) – eemerge 2010-06-17 20:45:40

+0

TexturesController.m是否導入TextureBrowser.h? – JBRWilkinson 2010-06-17 20:55:47

回答

1

TexturesController.m中,您必須導入TextureBrowser.h,以便控制器知道屬性textureView具有哪些方法。現在,你剛剛得到一個空白的佔位符符號而不是實際的類。

由於textureView由插座定義,所以您需要確保其類在Interface Builder中正確設置。如果您提供一個通用的NSView,它將不會有loadTextureList:方法。

+0

謝謝,這幾乎做到了,現在調用View中的方法。但我仍然有另一個問題。 Im使用NSFileManager加載紋理,NSFileManager返回一個包含文件的數組。 然後在for循環中,使用NSFileManager之前返回的數組中的值更新textureList數組。 我通過調用:[textureList addObject:....] 問題是在週期結束時,[textureList count]返回0. 也許有更好的方法將從NSFileManager返回的數組複製到我的textureList數組?我在這裏做錯了什麼,使textureList有一個0大小? – eemerge 2010-06-17 22:10:50

+0

自己發現了問題,沒有分配數組。 再次感謝大家的幫助。 – eemerge 2010-06-17 22:21:05

0

如果您在TexturesController.m中導入了TextureBrowser.h,我不明白爲什麼它找不到您的方法。

但是,您爲什麼不簡單地從TexturesController中調用self.textureView.textures = textureList;

+0

我剛剛試過這個,我得到一個錯誤: 訪問未知的'textureView'getter方法 – eemerge 2010-06-17 20:55:21

+0

Eugh - 封裝怎麼樣? – JBRWilkinson 2010-06-17 20:56:51

+0

我將如何使用封裝? – eemerge 2010-06-17 20:59:18

相關問題