【问题标题】:iOS7 MKTileOverlay Cached (Save cached method?)iOS7 MKTileOverlay Cached(保存缓存的方法?)
【发布时间】:2013-12-25 09:33:50
【问题描述】:

我正在开发地图应用程序,并考虑在 iOS7 中为 MKTileOverlay 和 MKTileOverlayRenderer 使用新功能。但是我用谷歌搜索了一下,没有运气。

我找到了这个帖子,告诉我做子类化 MKTileOverlay

Hiding mapview when mapoverlay is visible ios7

来自线程的代码:

-(void)loadTileAtPath:(MKTileOverlayPath)path result:(void (^)(NSData *, NSError *))result
{
    NSData *tile = [self someHowGetTileImageIntoNSDataBaseOnPath:path];
    if (tile) {
        result(tile, nil);
    } else {
        result(nil, [NSError errorWithDomain: CUSTOM_ERROR_DOMAIN code: 1 userInfo:nil]);
    }
}

问题是: [self someHowGetTileImageIntoNSDataBaseOnPath:path] 正在加载 tileData 但是如何将 tileData 保存到数据库?

如果我可以从数据库result(tile, nil); 中获取 tileData 是否足以显示覆盖? 或者我需要在覆盖loadTileAtPath:result:后做其他事情@

谢谢

【问题讨论】:

    标签: map ios7 mapkit mktileoverlay


    【解决方案1】:

    很抱歉提出愚蠢的问题,现在我想我对这个 MKTileOverlay 有了更多的了解。

    -(void)loadTileAtPath:(MKTileOverlayPath)path result:(void (^)(NSData *, NSError *))result
    {
        NSData *tile = [self someHowGetTileImageIntoNSDataBaseOnPath:path];
        if (tile) {
            result(tile, nil);
        } else {
            NSHTTPURLResponse *response = nil;
            NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[self URLForTilePath:path]];
            //Or you can using asynchronous request.
            NSData *tileData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
            [self saveCachedWithData:tileData];
            result(tileData, nil);
        }
    }
    

    可能环顾一天让我目瞪口呆,无法理解它的图书馆, 再次抱歉,希望这可以帮助遇到同样问题的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多