我在地图应用程序上工作并考虑在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保存到DB?
如果我能从数据库result(tile, nil);
获取tileData足以让make叠加显示?
或者我需要在覆盖loadTileAtPath:result:
谢谢
答案 0 :(得分:0)
我很抱歉提出愚蠢的问题,现在我想我更了解这个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);
}
}
可能四处寻找让我晕眩,无法理解它的图书馆, 再次抱歉,希望这可以帮助那些面临同样问题的人。