我遇到了一个问题,我试图从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
读取 myArray2ViewController.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错误的情况下似乎不可能使用代码。
答案 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