来自另一个视图的NSMutableArray返回空

时间:2012-07-11 03:43:51

标签: ios cocoa-touch nsmutablearray

我有两个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...
  }

1 个答案:

答案 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

访问SelectText类的所有属性