【发布时间】:2016-11-10 09:17:01
【问题描述】:
希望是一个非常简单的问题。正如您在下面的代码中看到的那样,我在 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];
}
【问题讨论】:
-
将它们从 viewDidLoad 移出到类定义中。并阅读一本关于编程的初学者书籍;-)
-
在你这样做之后你会遇到的问题,请参阅Variable returning NULL after Block execution
-
我不喜欢“阅读初学者书籍”之类的说法。这没什么用,虽然对某些人来说可能很有趣,但对提出问题的人来说肯定不好笑。 TBH,这对我来说有点像是一种欺凌。 :-(
-
与其讽刺香肠,如果你建议读一本真正的书肯定会更有帮助,我相信你从来没有在一夜之间学会,每个人都必须从某个地方开始,我也完全同意 conarch你的评论。
-
也许来自 Big Nerd Ranch 或 Raywenderlich 的书籍(不过主要是 Swift 的新东西),iTunes U 上的斯坦福 iOS 讲座很好,但你需要时间来观看它们。如果您的问题得到解决,也请接受其中一个答案。
标签: ios objective-c