如何存储CLLocationCooperative2D?

2023-11-26

我正在尝试构建一个应用程序,该应用程序可以构建和保存类似于绘制我的跑步路线的路线。我正在使用面包屑示例代码,特别是CrumbPath and CrumbPathView作为我路线的基础,来自 Apple。两个问题:

  1. 如果我尝试访问MKMapPoint *points的对象CrumbPath像这样:

    [_route lockForReading];
    NSLog(@"%@", _route.points);
    NSLog(@"%d", _route.pointCount);
    [_route unlockForReading];
    

    我的应用程序崩溃了,说:

    Thread 1: EXC_BAD_ACCESS (code: 1, address: 0x9450342d)
    

    我很难理解这一点,因为在CrumbPath.m文件中,苹果公司的人员通过显式获取写锁然后解锁它来写入“数组”,但是如果我获取读锁并尝试从中读取,它就会崩溃。

  2. 我尝试访问的原因points正在尝试获得MKMapPoints,将它们转换为CLLocationCoordinate2D对象,并保存它们,以便我可以重绘polyline根据用户的要求。由于我无法访问points,我尝试保存CLLocationCoordinate2D我的对象locationManager我发送到_route以数组形式上传到我的Parse后端,但我总是收到错误消息:

    Sending 'CLLocationCoordinate2D' to parameter of incompatible type 'id'
    

    这并没有让这件事变得更容易。有人知道我为什么会收到这些错误吗?

地点经理代表

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
    if (_userLocation.longitude != manager.location.coordinate.longitude
        && _userLocation.latitude != manager.location.coordinate.latitude) {
        _userLocation = manager.location.coordinate;
    }

    if (_isRecording) {
        if (!_route) {
            NSLog(@"lat: %f, lng: %f", _userLocation.latitude, _userLocation.longitude);
            _route = [[CrumbPath alloc] initWithCenterCoordinate:_userLocation];
            [_mapView addOverlay:_route];

            MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(_userLocation, 2000, 2000);
            [_mapView setRegion:region animated:YES];
        }else {
            MKMapRect updateRect = [_route addCoordinate:_userLocation];

            if (!MKMapRectIsNull(updateRect)) {
                MKZoomScale currentZoomScale = (CGFloat)(_mapView.bounds.size.width / _mapView.visibleMapRect.size.width);
                CGFloat lineWidth = MKRoadWidthAtZoomScale(currentZoomScale);
                updateRect = MKMapRectInset(updateRect, -lineWidth, -lineWidth);
                [_routeView setNeedsDisplayInMapRect:updateRect];
            }
        }
        [_routePoints addObject:_userLocation];

        [_route lockForReading];
        NSLog(@"%d", _route.pointCount);
        NSLog(@"%@", _route.points);
        [_route unlockForReading];
    }
}

停止记录逻辑

    //stop recording
    NSLog(@"STOP");
    if (_route) {
        NSLog(@"There is a route");
        //Show route options toolbar
        [_route lockForReading];

        NSLog(@"%@", _route);
        NSLog(@"%d", _route.pointCount);
        NSLog(@"%@", _route.points);

        PFObject *routeToSave = [PFObject objectWithClassName:@"Routes"];
        //[routeToSave setObject:_route forKey:@"routePoints"];

        [_route unlockForReading];

        [routeToSave saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
            if (!error) {
                NSLog(@"%c", succeeded);
            }else {
                NSLog(@"%@", error);
            }
        }];
    }

关于您的第一个问题,崩溃的原因是:

NSLog(@"%@", _route.pointCount);

它应该是:

NSLog(@"%d", _route.pointCount);

正如我的评论中提到的,%d应该用于计数和%@会导致崩溃。

关于你的第二个问题,你不能将 c 结构添加到NSArray。你应该把它包起来NSValue在将其添加到数组之前。CLLocationCoordinate2D是一个c结构体。检查文档在这里。

改变这个:

[_routePoints addObject:_userLocation];

to:

NSValue *aValue = [NSValue valueWithMKCoordinate:_userLocation];
[_routePoints addObject:aValue];

获取坐标NSValue, 您可以使用,

[aValue MKCoordinateValue];

正如您的错误消息中提到的,您试图添加CLLocationCoordinate2D到一个需要对象的数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何存储CLLocationCooperative2D? 的相关文章

  • 将 UIPanGestureRecognizer 添加到 UIScrollView 时禁用滚动

    我有一个滚动视图 我想让它在平移完成时消失 它工作正常 平移时滚动视图消失 但问题是现在我无法滚动内容 UIView animateWithDuration 0 2 delay 0 2 options UIViewAnimationCurv
  • Swift :基于 nsdate() 解析、查询日期字段

    我正在尝试检索今天添加的记录进行解析 但查询不返回任何结果 我怎样才能让查询返回基于今天日期的结果 let now NSDate var query PFQuery className userBids query whereKey dat
  • 未安装 Apple 的全球开发者关系 (WWDR) 中间证书

    我今天无法通过 Appcelerator Titanium 发布我的应用程序 AdHoc 我开始收到此错误 错误 未安装 Apple 的全球开发者关系 WWDR 中间证书 错误 这将阻止您为 iOS 设备构建应用程序或用于分发的软件包 我上
  • 将UIWebView显示的PDF保存到本地

    我有一个UIViewController与UIWebView显示一个 pdf 文件 具体取决于之前单击的行UITableView 现在我想添加一个按钮 供用户在本地保存此 pdf 文件以供离线使用 然后还有第二个UITableView它应该
  • Google Cardboard - Cardboard VR 套件有 iPhone / iOS 入门项目吗?

    我正在看Google Cardboard 套件 一种廉价的 VR 设置 https developers google com cardboard 使用 Android 设备玩 3d VR 游戏 我看到他们有一个 Android 演示项目
  • 将 .p12 证书存储在钥匙串中以供稍后使用

    我正在尝试按照 Apple 文档处理此处的客户端 p12 证书 https developer apple com library ios documentation Security Conceptual CertKeyTrustProg
  • Draggable Boxview 不更新 Xamarin

    我的第一个问题是框视图生成在左上角 而不是我指定的设计网格第 10 行和网格第 3 列 第二个问题在于可拖动视图 在代码本地可拖动视图的第一部分中 它正确地调用了触摸事件 但也许它没有在GUI中更新
  • 与自定义键盘扩展进行通信,主机应用程序无法在设备中运行,但可以在模拟器中运行

    我正在使用自定义键盘扩展 这几乎完成了 但当我与扩展和我的主机应用程序通信数据时 我只是面临设备问题 该应用程序在设备中没有工作 但在模拟器中工作也是如此 我的代码如下 HostApp 视图控制器 void viewDidLoad defa
  • 从 iOS 设备向 Google App Engine 进行身份验证

    我正在开发一个 iPhone 应用程序 它使用 Google 应用程序引擎来托管后端 我需要通过 Google 进行身份验证 但我似乎无法找到从我的应用程序中执行此操作的方法 看来我要做一个UIWebView让用户登录到我从 Google
  • SKScene和SKView的paused属性之间的区别

    我使用以下代码暂停 SKScene self paused YES 然而 根据这个answer https stackoverflow com a 21593852 2043580 by 安德烈 戈尔杰耶夫 https stackoverf
  • “EXC_BAD_ACCESS”与“分段错误”。两者实际上相同吗?

    在我的前几个虚拟应用程序 用于学习时练习 中 我遇到了很多EXC BAD ACCESS 这以某种方式告诉我错误访问是 您正在触摸 访问一个不应该的对象 因为它尚未分配或释放 或者只是您无权访问它 查看此示例代码 该代码存在访问错误问题 因为
  • iOS - 在 UITabBar 上方获取所需的阴影

    我试图让我的标签栏阴影看起来像这张图片中看到的那样 这样做的最佳方法是什么 我正在使用 Objective C Thanks 您可以使用以下代码为任何 UI 对象提供阴影 tabBar layer shadowOffset CGSize w
  • Objective C 宏附加到字符串

    我认为这是一件非常简单的事情 但由于我是 iOS 开发和 Objective C 的新手 所以我无法弄清楚 define RESTFUL PATH PREFIX https gogch com gch restful define LOGI
  • 增量后清除推送通知徽章

    我正在研究 iPhone 中的推送通知 当我收到推送通知时 它在我的应用程序图标上显示 1 下次显示 2 3 4 如果我打开应用程序 它是 0 下次它应该是 1 2 3 4 但它显示最后一个数字和 1 我想在打开应用程序后重置推送通知徽章
  • UIView 周围的虚线边框

    如何在周围添加虚线边框UIView 像这样的东西 如果您喜欢子层 还有另一种方法 在您的自定义视图的 init 中 输入以下内容 border 是 ivar border CAShapeLayer layer border strokeCo
  • 视频中的图像/文本叠加 swift

    我正在使用 swift 在视频中使用图像叠加来实现水印效果 我正在使用AVFoundation为此 但不知何故我没有成功 以下是我的覆盖图像 文本的代码 let path NSBundle mainBundle pathForResourc
  • 移动设备上的 TensorFlow(Android、iOS、Windows Phone)

    我目前正在寻找不同的深度学习框架 特别是用于训练和部署卷积神经网络 要求是 它可以在带有 GPU 的普通 PC 上进行训练 但训练后的模型必须部署在三个主要的移动操作系统上 即 Android iOS 和 Windows Phone Ten
  • 使用 UIWebView 显示 PDF 不起作用

    因此 我意识到有关使用 UIWebView 在应用程序 在 iPad 上 中显示 PDF 存在很多问题 我已经审查了我能找到的所有内容 但似乎找不到任何满意的东西 我想做的事情非常基本 所以我真的不知道为什么它不起作用 我需要做的就是在 U
  • 在后台继续下载

    我正在创建一个应用程序 其中我从服务器下载一些数据 在后台运行时 我希望连接继续运行 以便可以下载数据 我知道有方法应用程序委托 void applicationDidEnterBackground UIApplication applic
  • iOS 11 特定设置部分的 URL 方案停止工作

    我的应用程序使用 URL 方案将用户直接带到 设置 常规 关于 部分 以下 URL 在 10 3 x 中工作正常 应用程序首选项 根 常规 路径 关于 然而 这个 URL 方案在 iOS 11 GM 版本中不再有效 它仅启动 设置 应用程序

随机推荐

  • 是否可以在 Visual Studio 中以编程方式清除输出窗口?

    您知道如何添加一些代码吗 调试期间 以编程方式清除输出窗口在视觉工作室中 或者您知道一些快速的替代方案 例如快捷键 Macro Sub ClearOutputWindow DTE ExecuteCommand Edit ClearOutpu
  • 如何根据用户滚动加载网页内容

    如何在用户滚动网页时加载内容 如何实施 一般来说 您需要有某种像这样的结构 first page of content first page of content first page of content first page of co
  • 为什么 NumPy int 不是 Python int 的实例,但 NumPy float 是 Python float 的实例?

    考虑以下 gt gt gt import numbers gt gt gt import numpy gt gt gt a numpy int 0 gt gt gt isinstance a int False gt gt gt isins
  • 如何使用 Android 导航组件将值传递回先前的片段目的地?

    让 sat 我有一些这样的目的地 从片段A gt 到片段B gt 到片段C 我可以使用安全参数将数据从片段 A 传递到片段 B 也可以使用安全参数从片段 B 传递到片段 C 如果我想将片段 C 中生成的字符串带回片段 B 或片段 A 该怎么
  • Java 8 重复键的流总和条目

    我使用 Java 8 流按某个键对条目列表进行分组 然后按日期对组进行排序 此外 我想做的是 折叠 组中具有相同日期的任何两个条目并将它们相加 我有一个这样的课程 出于示例目的而被精简 class Thing private String
  • xcode 多合一布局:在项目和调试页面之间切换的键盘快捷键?

    当您将 xcode 配置为使用 All in one 布局时 会出现一个切换开关 允许您在项目和调试 模式 之间切换 IDE 调用这些页面 是否有键盘快捷键可以执行切换 Project Cmd 0 zero Build Cmd Shift
  • 我可以同时安装 Ruby on Rails 2.x 和 Ruby on Rails 3

    我有一个 Ubuntu Rails 环境来使用 ROR 现在我正在运行 Rails 2 3 8 我想研究一下 Rails 3 是否可以并行运行两个开发环境 如果没有 如何清理 Rails 2 x 系统以安装 Rails 3 或者我需要安装一
  • 在 SQL Server 中保存日期

    我有一个遗留应用程序 其中输入是日期字符串 即 2009年6月12日 输入的格式始终是字符串 并且是一致的 始终是 dd mm yyyy 目前 遗留应用程序只是将其插入日期时间字段中 显然 如果服务器的本地化文化设置发生变化 我们有一个错误
  • 使用Git显示所有一级后代分支

    如何获取当前 HEAD 的一级后代分支的列表 我可以通过以下方式获取整棵树的列表 git log graph abbrev commit pretty decorate branches 这使 2eff4a7 refs heads issu
  • 为WPF中的所有元素事件添加监听器

    我想在一次调用中挂钩所有可用的元素事件 像这样的事情 elem AddHandler AnyRoutedEvent RoutedEventHandler handler 我怎样才能做到这一点 尝试此操作以获取按钮类型上的所有事件 您可以替换
  • Android:Process.myTid() VS Thread.currentThread().getId()

    我有简单的Activity那个叫AsyncTask 所以我打印一些关于Proces and Thread From onCreate android os Process myUid 10137 From onCreate android
  • PHP 连接到 firebase 是如何工作的?

    如果您有时间阅读firebase php文档 您可以看到如何使用帮助程序库 连接 到firebase 但不幸的是 我认为连接只能由 phpunit 建立 换句话说 输出只能在终端中看到 因为当你在浏览器中运行 php 页面时 它会返回致命错
  • AttributeError:模块“socket”没有属性“AF_PACKET”

    我正在使用 Python 构建一个数据包嗅探程序 但是我遇到了障碍 由于某种原因 我认为套接字没有正确导入 因为我的程序运行时收到以下消息 AttributeError module socket has no attribute AF P
  • 为什么 css "all: unset" 在 MacOS 的 Safari 浏览器中工作得很奇怪?

    所以基本上我做了这种情况 父级有cssall unset 然后我注意到当我使用 Safari 版本12 1 1 14607 2 6 1 1 它的所有子颜色只能受到以下影响 块 甚至不是内联或 important 但只有color行为方式就是
  • “迁移 Django 应用程序”是什么意思?

    我一直在思考很多的意义migrating a Django app在过去的几天里 听说了如何迁移 Django 应用程序南姜戈 也许只是缺乏足够的英语技能 因为英语不是我的母语 或者这是你在程序员生活中遇到的事情之一 这些事情非常简单 需要
  • 如何获取ListView项目的视图?

    我有两个 ListView A 和 B 其中包含相同类型的项目 我创建的类 当我单击 A 中的某个项目时 它会将该对象添加到 B 上 如果我再次单击 则会将其删除 只是当选择一个项目时 我使用 view setBackgroundColor
  • 如何使用 JQuery 更改 onClick 复选框的值?

    在这里 我尝试在单击以下复选框时更改其值 在下面的代码中 我尝试将复选框的值更改为 1 并在未选中时将值更改为 0 但它只需要 false 条件 当取消选中该复选框时 值会更改为 0 但选中时 它不会更改为 1 有什么建议如何解决此问题吗
  • 如何在 SceneKit 中的“自己”轴上移动旋转的 SCNNode?

    下图显示了一个旋转框 应在 X 轴和 Z 轴上水平移动 Y 应该不受影响 以简化场景 这个盒子也可能是相机的 SCNNode 所以我想此时投影没有意义 假设我们想要沿着红色箭头的方向移动盒子 如何使用 SceneKit 来实现这一点 红色箭
  • 具有 Robocopy 和参数传递的 Powershell

    我正在尝试编写一个使用的脚本robocopy 如果我只是手动执行此操作 我的命令将是 robocopy c hold test1 c hold test2 test txt NJH NJS 但是 当我从 powershell 执行此操作时
  • 如何存储CLLocationCooperative2D?

    我正在尝试构建一个应用程序 该应用程序可以构建和保存类似于绘制我的跑步路线的路线 我正在使用面包屑示例代码 特别是CrumbPath and CrumbPathView作为我路线的基础 来自 Apple 两个问题 如果我尝试访问MKMapP