2012-02-20 18 views
0

我有控制這樣的事情在其中創建與性能控制

#import <Foundation/Foundation.h> 

#import "AQLevelMeter.h" 

    #import "AQPlayer.h" 
    #import "AQRecorder.h" 


@interface SpeakHereController : NSObject { 

    IBOutlet UIBarButtonItem* btn_record; 
    IBOutlet UIBarButtonItem* btn_play; 
    IBOutlet UILabel*   fileDescription; 
    IBOutlet AQLevelMeter*  lvlMeter_in; 

    AQPlayer*     player; 
    AQRecorder*     recorder; 
    BOOL      playbackWasInterrupted; 
    BOOL      playbackWasPaused; 



} 

@property (nonatomic, retain) UIBarButtonItem  *btn_record; 
@property (nonatomic, retain) UIBarButtonItem  *btn_play; 
@property (nonatomic, retain) UILabel    *fileDescription; 
@property (nonatomic, retain) AQLevelMeter  *lvlMeter_in; 

@property (readonly)   AQPlayer   *player; 
@property (readonly)   AQRecorder   *recorder; 
@property      BOOL    playbackWasInterrupted; 
@property      BOOL    isReport; 
@property CFStringRef   recordFilePath; 


- (IBAction)record: (id) sender; 
- (IBAction)play: (id) sender; 
-(void) InitializeThePlayer; 

@end 

我們可以看到我增加了許多性能如

@property      BOOL    isReport; 
    @property CFStringRef   recordFilePath; 

然後,我創建的UIView包含該控件

#import <UIKit/UIKit.h> 

@class SpeakHereController; 

@interface SpeakHereViewController : UIViewController { 

    IBOutlet SpeakHereController *controller; 
} 

現在我想訪問控制對象的屬性,所以我說

- (void)viewWillAppear:(BOOL)animated { 



    [self ReportDirectory]; 

    [controller setIsReport:self.iSReport ]; 
    //controller.isReport = self.iSReport ; 

    [controller setRecordFilePath:(CFStringRef) self.DICOMpath]; 

    //controller.recordFilePath = ; 


} 

的問題是,在線路

[controller setIsReport:self.iSReport ]; 
[controller setRecordFilePath:(CFStringRef) self.DICOMpath]; 

有警告說,

warning: no '-setIsReport:' method found 

我做

@synthesize isReport; 
@synthesize recordFilePath; 

另外,如果我換成@class SpeakHereController;通過#import「SpeakHereController.h」它引發了很多錯誤,U可以從蘋果下載示例代碼

如果我說controller.isReport = self.iSReport;它提升爲成員的isReport「錯誤的請求的東西不是一個結構或聯合

我的問題是如何調用的屬性在這種控制中,我失去的東西

問候

我試過

回答

1

在SpeakHereViewController.m的頂部,你將需要

import "SpeakHereController.h" 

否則,當SpeakHereViewController.m被編譯,它是完整的ly不知道你的SpeakHereController類有什麼方法和屬性

它應該運行良好,即使有警告,因爲屬性確實存在。不過,我同意你的看法,即警告需要處理。

+0

我使用@class SpeakHereController;是否足夠 – AMH 2012-02-20 08:13:55

+0

我更新了我的代碼,對不便造成的不便 – AMH 2012-02-20 08:20:30

+0

不,@class行可以防止.h文件中的錯誤。你有沒有試過我建議的?讓我們知道它是否仍然無效。 – 2012-02-20 08:25:25

0

您應該在.m文件中綜合這些屬性。

語法如下:

@synthesize isReport, recordFilePath; 
+0

我更新了我的代碼,對於給您造成的不便深表歉意 – AMH 2012-02-20 08:20:25