Xcode:从dataFile读取数组

时间:2015-06-25 21:11:56

标签: ios objective-c xcode

我遇到了一个问题,我试图从dataFile读取一个数组。

我有一个dataFile.h和dataFile.m

dataFile.h

#import <Foundation/Foundation.h>

@interface dataFile : NSObject

@end

dataFile.m

#import "dataFile.h"

@implementation dataFile

-(void)Data

{
    NSArray  * myArray2 = [NSArray arrayWithObjects:@"f",@"b",@"z",nil];
}

@end

我有另一个ViewController应该从 dataFile.m

读取 myArray2

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UILabel *Label;

@end

ViewController.m

#import "ViewController.h"
#import "dataFile.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    // The code here doesn't seem to be working to read myArray2

    _Label.text = [myArray2 indexOfObject:2];

}

基本上应该发生的是 myArray2 将被调用到 ViewController ,然后被设置为标签的文本。

然而它似乎陷入了阅读的困境。因为在没有Xcode错误的情况下似乎不可能使用代码。

1 个答案:

答案 0 :(得分:0)

您需要从界面中的dataFile公开NSArray,并在videDidLoad中使用它。在您的示例NSArray本地定义,在Data方法之外不可见。以下是变化的样子。

<强> dataFile.h

#import <Foundation/Foundation.h>

@interface dataFile : NSObject
+(NSArray *)Data;
@end

<强> dataFile.m

#import "dataFile.h"

@implementation dataFile

+(NSArray *)Data

{
    return [NSArray arrayWithObjects:@"f",@"b",@"z",nil];
}

@end

<强> ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UILabel *Label;

@end

<强> ViewController.m

#import "ViewController.h"
#import "dataFile.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];    
    _Label.text = [[dataFile Data] indexOfObject:2];

}
@end