使用NSArray作为输入的自定义方法

时间:2014-05-08 13:02:32

标签: ios objective-c methods uiscrollview nsarray

我试图从NSArray开始创建UIScrollview。 问题是当我编写方法时一切都很好但是当我在NSArray中调用该方法时,我得到了这样的消息:no visible @interface for NSArray declares the selector 'createScrollView',就像xcode没有看到实现一样。 我也试过一种非常愚蠢的方法,比如

-(int)countData:(NSArray *)array {
return [array count];
}

但是当我打电话给[myArray countData];时,我得到了那个数组。 我想我想念一些蠢事,你能帮帮我吗?谢谢

编辑:我目前的代码如下:

-(UIScrollView *)createModalView:(NSArray *)dataArray
{
UIScrollView *scrollView = [[UIScrollView alloc] init];

for (int i = 0; i < dataArray.count; i++)
{
    CGRect frame;
    frame.origin.x = scrollView.frame.size.width * i;
    frame.size = scrollView.frame.size;
    scrollView.pagingEnabled = YES;

    CDOPageDescription *page = nil;
    page = [dataArray objectAtIndex:i];

    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(scrollView.frame.size.width * i, 0, 200, 40)];
    UILabel *urlLabel = [[UILabel alloc] initWithFrame:CGRectMake(scrollView.frame.size.width * i, 40, 200, 40)];
    UILabel *sectionLabel = [[UILabel alloc] initWithFrame:CGRectMake(scrollView.frame.size.width * i, 80, 200, 40)];
    titleLabel.text = page.title;
    urlLabel.text = page.url;
    sectionLabel.text = page.sectionTitle;

    [scrollView addSubview:titleLabel];
    [scrollView addSubview:urlLabel];
    [scrollView addSubview:sectionLabel];

    scrollView.contentSize =  CGSizeMake(scrollView.frame.size.width * dataArray.count, scrollView.frame.size.height);
}

return scrollView;

}

1 个答案:

答案 0 :(得分:0)

您不应该尝试子类化NSArray或NSMutableArray。那些是&#34;类集群&#34;,这使得对它们进行子类化非常困难。 (并使其超出你目前的技能水平。)另外,在这种情况下做错了。

其次,数组不应具有滚动视图属性。数组是数据容器类。它不应该绑定到视图对象。这是一个非常糟糕的设计。

您可以发布不同类的标题并解释它们应该如何相互关联吗?你还没有足够的背景让我们知道你在做什么。

你说:

  

...但是当我调用[myArray countData]时;我得到那个阵列。我想我   想念一些蠢事,你能帮助我吗?

您已在某个类(未指定)中定义了一个实例方法,该方法将数组作为参数,并返回一个计数。

调用[myArray countData]没有意义。这会尝试将countData消息发送到阵列。数组没有countData方法,你的课程就是这样。它应该是

[self countData: myArray];

这意味着&#34;使用参数myArray&#34;将消息countData:发送给自己。