我有两个UIViews。一个名为SelectText
的UIView有一个NSMutableArray
的ivar,在执行某个功能后填充。
以下是代码段:
- (void)fillDrawPoints
{
//the codes....
[self.drawnPoints addObject:[NSValue valueWithCGPoint:currPoint]];
}
注意: drawnPoints
数组在SelectText的initWithFrame
中初始化。此外,我总是通过在函数中放入一个日志来检查数组是否实际填充在视图中。
现在我想要做的是从另一个视图访问这个数组。这就是我的工作:
TextView.h
#import "SelectText.h"
@interface TextView : UIView
{
SelectText *txtSel;
}
@property (nonatomic, retain) SelectText *txtSel;
TextView.m
@synthesize txtSel;
- (void)getDrawingPoints:(NSMutableArray *)pointArray
{
self.pointArray = pointArray;
NSLog(@"Array count: %d", [self.pointArray count]);
}
从上面的代码中可以看出,我正在尝试将txtSel.drawnPoints
中的数据传递给textView.pointArray
以供日后使用。问题是,当我尝试从另一个视图访问它时,txtSel.drawnPoints
总是返回空。我在这做错了什么?
其他
这是我实施SelectText
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
txtSel = [[SelectText alloc]init];
[self addSubView:txtSel];
//rest of code...
}
答案 0 :(得分:0)
更改TextView类init方法,如下所示
- (id)initWithClassSelectText:(SelectText *)selectText {
if ((self = [super init])) {
txtSel = selectText;
}
return self;
}
当你创建一个TextView实例时,你可以使用它:
TextView textView = [[TextView alloc] initWithClassSelectText:self];
现在您可以使用txtSel
object