0

我一直在使用 JSONModel,这些教程很有意义。他们正在解析 JSON 包含具有多个索引的数组。

我想确保 JSONModel 可以与这个数据集一起使用:https ://gist.github.com/ryancoughlin/8043604

tide数组不正确吗?但是有tide.tideSummary- 其中包含多天的潮汐数据数组。

AllTide.h

#import "JSONModelLib.h"
#import "Tide.h"

@interface AllTide : JSONModel

@property (strong,nonatomic) NSDictionary<Tide> *tide;

@end

潮汐.h

#import "JSONModelLib.h"
#import "TideSummaryStats.h"

@protocol Tide @end

@interface Tide : JSONModel

@property (nonatomic, strong) NSArray<TideSummaryStats> *tideSummaryStats;

@end

TideSummaryStats.h

#import "JSONModelLib.h"

@protocol TideSummaryStats @end

@interface TideSummaryStats : JSONModel

@property (nonatomic, strong) NSString *maxheight;
@property (nonatomic, strong) NSString *minheight;

@end

TideDetailViewController - 显示单个位置(详细视图)与多个位置列表

@interface TideDetailViewController () {
    AllTide *_objTide;
}

@end

@implementation TideDetailViewController

- (void)viewDidAppear:(BOOL)animated {

    NSString *locationQueryURL = @"http://api.wunderground.com/api/xxxxx/tide/geolookup/q/43.5263,-70.4975.json";

    //fetch the feed
    _objTide = [[AllTide alloc] initFromURLWithString:locationQueryURL                                         completion:^(JSONModel *model, JSONModelError *err) {

                                             NSLog(@"Tides: %@", _objTide.tide);

                                         }];
}

经历了几个 JSONModel 教程,这很有意义,我认为我的 JSON 格式与教程不同时遇到了麻烦。同样,mytide不返回数组。

这是使用 JSONModel 键盘映射器的好案例吗?

有任何想法吗?让我知道我是否可以提供其他任何东西。一直在潜水寻求一些指导,但有点卡住了。提前致谢!

4

1 回答 1

0

你不需要AllTide.h

尝试这个:

TideDetailViewController - 显示单个位置(详细视图)与多个位置列表

@interface TideDetailViewController () {
  NSArray *arrTide;
}

@end

@implementation TideDetailViewController

- (void)viewDidAppear:(BOOL)animated {

    NSString *locationQueryURL = @"http://api.wunderground.com/api/xxxxx/tide/geolookup/q/43.5263,-70.4975.json";

    //fetch the feed
    [JSONHTTPClient getJSONFromURLWithString: locationQueryURL
                              completion:^(NSDictionary *json, JSONModelError *err) {

    arrTide = [TideSummaryStats arrayOfModelsFromDictionaries:json[@"tide"][@"tideSummaryStats"]                                                ];

     NSLog(@"Tides: %@", arrTide[0]);

  }];
}
于 2013-12-28T17:41:59.817 回答