创建带有其中属性的控件
我有类似这样的控件
#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”它会引发很多错误,你可以从苹果下载示例代码
,如果我说controller.isReport = self.iSReport;它在非结构或联合中引发对成员“isReport”的错误请求
我的问题是如何调用此控件中的属性,我是否遗漏了一些东西
最好的问候
我尝试过的
I have control something like this
#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
as we can see I added many properties like
@property BOOL isReport;
@property CFStringRef recordFilePath;
then I created uiview contains this control
#import <UIKit/UIKit.h>
@class SpeakHereController;
@interface SpeakHereViewController : UIViewController {
IBOutlet SpeakHereController *controller;
}
Now I want to access the properties of the control object so I say
- (void)viewWillAppear:(BOOL)animated {
[self ReportDirectory];
[controller setIsReport:self.iSReport ];
//controller.isReport = self.iSReport ;
[controller setRecordFilePath:(CFStringRef) self.DICOMpath];
//controller.recordFilePath = ;
}
the problem is that at the lines
[controller setIsReport:self.iSReport ];
[controller setRecordFilePath:(CFStringRef) self.DICOMpath];
there is warning say that
warning: no '-setIsReport:' method found
I made
@synthesize isReport;
@synthesize recordFilePath;
also if I replaced @class SpeakHereController; by #import "SpeakHereController.h" it raise a lot of errors , U can download the sample code from apple
and if I said controller.isReport = self.iSReport ; it raise error request for member 'isReport' in something not a structure or union
My question is how to call the properties in this control , am I missing something
Best regards
I tried
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 SpeakHereViewController.m 的顶部,您将需要
否则,当编译 SpeakHereViewController.m 时,它完全不知道您的
SpeakHereController
类具有哪些方法和属性。即使出现警告,它也应该运行良好,因为该属性确实存在。不过,我同意你的观点,即需要处理该警告。
At the top of SpeakHereViewController.m you will need
Otherwise when SpeakHereViewController.m is compiled, it is completely unaware of what methods and properties your
SpeakHereController
class hasIt should run fine even with the warning because the property does exist. However, I agree with you that the warning needs to be dealt with.
您应该在 .m 文件中综合这些属性。
语法如下:
You should synthesize those properties in .m file.
The syntax is like: