希望是一个非常简单的问题。正如您在下面的代码中看到的,我在viewdidload中的代码中设置了两个NSArray。问题是我无法访问viewDidLoad之外的这些数组。有没有办法让我在viewDidLoad之外填充我的cell.textlabel.text?
代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
NSURLSession *session = [NSURLSession sharedSession];
//URLText is from previous VC see .h file.
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.test.com/%@/%@.json", _URLText, _URLText]] completionHandler:^(
NSData *data,
NSURLResponse *response,
NSError *error) {
NSDictionary *vDB = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSArray *amountOfV = [vechileDB valueForKeyPath:@"amount"]; //how to assign nsstring from dictionary.
NSArray *makeOfV = [vDB valueForKeyPath:@"make"];
NSLog(@"%@ %@", makeOfV, amountOfV);
}];
//Run the completed task.
[dataTask resume];
}
答案 0 :(得分:3)
您可以将数组定义为.m文件中的属性,请参见下文,然后只使用self.amountOfV引用数组。
@interface YourClass ()
@property (nonatomic) NSArray *amountOfV;
@property (nonatomic) NSArray *makeOfV;
@end
@implementation YourClass
...
如果您有兴趣,Realm有一篇关于属性属性的文章https://realm.io/news/tmi-objective-c-property-attributes/。
答案 1 :(得分:1)
您可以将两个数组声明为以下属性:
self.amountOfV
并将其称为test/controllers/users_controller_test.rb