gpt4 book ai didi

ios - 无法从 for 循环调用方法

转载 作者:行者123 更新时间:2023-11-29 03:02:47 26 4
gpt4 key购买 nike

我有一个对我来说很奇怪的问题(我是 Objective-C 的新手),但对专家来说可能是显而易见的。

所以我有一个 ViewController,它有一个方法可以将项目添加到链接到 ListView 的 NSMutableArray。这个想法是它将通过使用 AFNetworking 调用 WebService URL 来填充。

NSMutable 数组定义如下:

@property NSMutableArray *newsItems;

然后我创建了一个将对象添加到数组的方法:

- (void)addNewsItemWithId:(NSInteger)newsId withMessage:(NSString *)message withDate:(NSString *)date {
SCWNewsItem *item = [[SCWNewsItem alloc] init];
item.id = newsId;
item.date = date;
item.preview = message;
[self.newsItems addObject:item];
}

然后我有另一个名为 loadInitialData 的方法,它将数据加载到数组中。

如果我这样测试:

- (void)loadInitialData {
[self addNewsItemWithId:1 withMessage:@"A first message" withDate:@"2014-04-17"];
[self addNewsItemWithId:2 withMessage:@"A second message" withDate:@"2014-04-17"];
}

它会工作得很好。我可以在我的 ListView 中运行和查看这两条消息。

但是,如果我尝试这样做,它不会添加任何内容:

- (void)loadInitialData {

NSLog(@"URL: %@", URL_GET_NEWS_ITEMS);

NSString *token = scwData.authToken;
if (token == nil) {
[self returnToLogin];
}
else {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setValue:[NSString stringWithFormat:@"Token %@", token] forHTTPHeaderField:@"Authorization"];

[manager GET:URL_GET_NEWS_ITEMS parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
for (NSDictionary *arr in responseObject) {
NSInteger itemId = [[arr valueForKey:@"id"] intValue];
NSString *name = [arr valueForKey:@"author_name"];
NSString *date = [arr valueForKeyPath:@"date_posted"];
NSString *message = [arr valueForKey:@"message"];

NSLog(@"itemId: %i", itemId);

[self addNewsItemWithId:itemId withMessage:message withDate:date];
}

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failed: %@", operation.responseObject);
}];
}
}

通过使用 NSLog,我可以看到循环肯定会被迭代,并且 JSON 数组中的每个属性都会输出到我的日志中,但它不会向我的 ListView 添加任何项目。

如果有人能告诉我这里发生了什么,我将不胜感激。

谢谢,标记

最佳答案

你有没有初始化self.newsItems喜欢self.newsItems = [[NSMutableArray alloc] init];在 viewDidLoad 中,或者您也可以在 loadInitialData 中尝试。请检查其他东西看起来不错。希望这可以帮助。让我知道输出数组或数组计数。

关于ios - 无法从 for 循环调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23127871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com