基本C类返回一个数组

Basic Objective C class to return an array

我对目标C不太熟悉,正在尝试一些基本概念,但遇到了一些困难。

实际上,我要做的是编写一个类,当从另一个类发送消息时返回一个数组。

返回值的类如下-

返回阶级

1
2
3
4
5
6
7
8
9
10
11
#import <Foundation/Foundation.h>

@interface ReturnClass : NSObject {

}


-(NSMutableArray *) getLocation ;


@end

返回阶级

1
2
3
4
5
6
7
8
9
10
    #import"ReturnClass.h"

    @implementation ReturnClass

    -(NSMutableArray *) getLocation {
   //do some stuff to populate array
    //return it
        return  latLngArray;
    }
    @end

然后我想将此调用到另一个实现中,以获取值

其他课程.m

1
2
3
4
5
6
7
8
9
10
11
12
#import"ViewController.h"
#import"ReturnClass.h"

@interface ViewController ()

@end
@implementation ViewController
- (void)viewDidLoad
{
    [super viewDidLoad];
NSMutableArray *latLngArray = [[getLocation alloc] init];
}

我很感激这可能有点不对劲,但请温柔一点,因为我正在努力学习:)


呼叫如下:

1
2
3
4
5
6
- (void)viewDidLoad
{
    [super viewDidLoad];
    ReturnClass *retClass = [[ReturnClass alloc] init];
    NSMutableArray *latLngArray = [retClass getLocation];
}

这将提供由getLocation生成的数组。

此代码在每次需要数组时都会生成EDOCX1的新实例;这可能是您想要的,也可能不是,因为您不能在调用之间保持任何状态。如果您需要在ReturnClass中保持状态,则必须实现单例(这里是一个问题的链接,说明了在目标C中实现单例的一种非常好的方法)。


一般来说,您应该回顾一下面向对象编程的概念。尤其是,不要将类与方法混淆。

在代码中,必须先实例化一个ReturnClass实例,才能调用其方法getLocation


1
NSMutableArray *latLngArray = [[getLocation alloc] init];

对于初学者来说,这一行漏掉了标记。您正在发送+alloc到方法的名称。您应该将该消息发送到类,如下所示:

1
ReturnClass *myObject = [[ReturnClass alloc] init];

然后向生成的对象发送消息,如下所示:

1
NSMutableArray *latLngArray = [myObject getLocation];