在 Swift 中获取 PHAsset 的位置

2024-03-30

由于某种原因location财产在PHAsset仅在 Objective-c 中公开,在 Swift 中不公开。

文档:PHAsset.location https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html#//apple_ref/occ/instp/PHAsset/location

为了解决这个问题,我想我可以创建一个 Objective-C 类,其唯一目的是提取位置并将其导入到 Swift 中。

LocationGetter.h

@interface LocationGetter : NSObject
+ (CLLocation *)locationForAsset:(PHAsset *) asset;
@end

LocationGetter.m

@implementation LocationGetter
+ (CLLocation *)locationForAsset:(PHAsset *) asset {
    return [asset location];
}
@end

到目前为止一切顺利,但是当我尝试在 Swift 中使用它时:

LocationGetter.locationForAsset(ass)

“LocationGetter.Type”没有名为“locationForAsset”的成员

额外问题:苹果到底为什么不曝光location快点?


事实证明,答案其实很简单。问题是 Swift 文件不知道什么是CLLocation是,因此拒绝导入该函数。输入CoreLocation解决了这个问题。

import CoreLocation

LocationGetter.locationForAsset(ass)

EDIT:苹果公司此后已将.location作为吸气剂PHAsset。获取位置现在非常简单asset.location.

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

在 Swift 中获取 PHAsset 的位置 的相关文章

  • 当 UITextField 已满或空时显示警报 Swift

    下面的代码中 如果 userNameTF 或 passwordTF 已满或为空 则会显示警报 IBAction func LoginBtn sender AnyObject let userName userNameTF text let
  • 如何防止Apple Watch进入睡眠状态?

    我们正在开发一个 Apple Watch 项目 但如果不被打扰 手表就会进入睡眠状态 有什么办法可以阻止它进入睡眠状态吗 据我所知和有关该主题的其他搜索 目前还没有api可通过编程方式启用或禁用 Apple Watch 的睡眠模式
  • 确定 Objective-C 方法在运行时是否是可变的

    有没有办法在运行时找出给定方法是否是可变参数类型 就像是method getTypeEncoding 这不会告诉我一个方法是否接受可变数量的参数 或者有什么技巧可以告诉我们吗 罗伯特的评论是正确的 考虑 interface Boogity
  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • 推入 UINavigationController 时隐藏 FBFriendPickerViewController 导航栏

    介绍一个实例FBFriendPickerViewController using presentViewController animated completion 非常简单 该类似乎是针对该用例的 但是 我想推送一个实例FBFriendP
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • iOS 中的 CSV 逐行解析

    我正在 Objective c 中解析 CSV 文件 该文件包含如下内容 line 40 Rising searches line 41 nabi avc Breakout line 42 stonewall 700 line 43 med
  • 如何恢复消耗品应用内购买?

    我正在开发一款 iOS 游戏 用户可以通过应用内消耗品购买一定数量的内部货币 比如 1000 金币 如果用户想将余额从一台设备转移到另一台设备 如何恢复消耗品购买 在苹果的文档中 它说我们必须使用我们自己的服务器 但是如何获取用户的Appl
  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present
  • 个人帐户开发者之间的 Apple 开发/分发证书

    我一直在到处寻找有关处理证书的正确答案 想象一下以下帐户 Joe拥有个人 Apple 帐户 但他根本不会编码 他只是发布了该应用程序并将其称为自己的 Bob还有一个个人 Apple 帐户 Bob 是一位编码专家 Joe 付费让他开发他的第一
  • 当强制退出/向上滑动以终止 iOS 应用程序而不点击横幅/警报时,如何获取推送通知有效负载?

    我正在构建一个应用程序来处理从 Parse 推送的通知 并尝试创建通知历史记录功能 我已经成功启用了后台模式 因此当应用程序在后台运行时 应用程序可以通过以下方式很好地获取有效负载application didReceiveRemoteNo
  • 防止 AlertView 被解雇

    任何人都可以帮助我防止在其按钮单击事件上解雇警报视图吗 我有一个 textview 作为我的alertView 的子视图 如果 textview 值为 nil 我不想关闭它 因为这是一个非常老的问题 但我得到了一个解决方案 并且如果其他开发
  • 致命错误:在字典中发现“地理编码地标”类型的重复键。 (Mapbox 地理编码器)

    我引用 这通常意味着要么该类型违反了 Hashable 的要求 要么此类字典的成员在插入后发生了变化 我正在使用 Mapbox Geocoder 当发生此运行时错误时 我的 XCode 将我带到线程 1 0 swift runtime on
  • NVActivityIndi​​catorView 仅适用于特定视图

    我正在使用这个库https github com ninjaprox NVActivityIndi catorView https github com ninjaprox NVActivityIndicatorView用于显示加载指示器
  • 在 UIImage 顶部绘制透明圆圈 - iPhone SDK

    我在尝试找出如何在 UIImageView 中的 UIImage 顶部绘制透明圆圈时遇到了很多麻烦 谷歌给了我线索 但我仍然找不到有效的例子 有没有人知道的例子可以证明这一点 最简单的方法就是创建一个半透明的方形 UIView 然后将其图层
  • WhatsApp 显示警告“此项目无法共享。请选择其他项目。”对于 iOS 应用程序。

    我正在开发一个 iOS 应用程序 在该应用程序中 我有社交共享功能 并且社交共享功能使用深度链接来共享 URL 该网址共享对于所有应用程序都运行良好 除了WhatsApp 它会显示一个警报弹出窗口 此项目无法共享 请选择其他项目 以下是我的
  • 拖动时获取MKAnnotation的坐标

    我正在根据用户添加的注释的位置创建一条路径 MKPolyline 我想允许用户通过拖动引脚来更改路径 我目前可以做到这一点 但 MKPolyline 不会更新 直到引脚被放下 我实施了 void mapView MKMapView mapV
  • 为什么我的视图仍然以横向呈现?

    我的视图是由导航控制器控制的 因此我将导航控制器支持的方向设置为明确的纵向和纵向UpSideDown 这可以工作 但是如果调用视图时前一个视图处于横向状态 它将以横向方式呈现并保持横向状态 直到设备旋转 如何防止这种情况发生 这是我的代码
  • SKNode 上的 runAction 未完成

    我使用 NSOperation 子类来获取串行执行SKAction正如这个问题中所描述的 如何在 Swift 中子类化 NSOperation 以将 SKAction 对象排队以进行串行执行 https stackoverflow com
  • RemoteIO 音频单元播放回调中的 AudioBufferList 内容

    我想 拦截 音频数据传送到 iOS 设备扬声器的过程 我相信这可以使用 RemoteIO 音频单元和回调来完成 在下面的playbackCallback中 ioData实际上包含任何音频数据吗 static OSStatus playbac

随机推荐

  • Spring WebClient 无法从 REST API 读取数据

    在我的 Spring Boot 应用程序中 我想使用 Spring WebClient 从以下 API 读取数据 如下所示 我之前没有经验 在对许多页面和文章进行多次搜索后 我决定使用 Spring WebClient 端点 URL 是 s
  • 从 Flash 或纯 AS3 项目使用 RemoteObject (AMF)

    我最近将一些代码从 Flex 项目移植到新的纯 AS3 项目 当我尝试进行 AMF 调用时 收到如下错误消息 TypeError 错误 1034 类型强制失败 无法将 Object 5425371 转换为 mx messaging mess
  • MVC.net 2 - 更改 ValidationMessageFor 输出的 HTML - 这可以通过模板进行吗?

    MVC net 2 默认输出验证消息 如下所示 span class field validation valid A Validation message span 我希望它这样做
  • 用JPA继承抽象类(+Hibernate)

    您将如何在以下示例代码中配置注释 我想只坚持使用 JPA 注释并避免 Hibernate 特定的依赖项 下面的代码正确吗 Entity public class RefExample extends RefData 这些类将有多个版本 Re
  • Android 警报对话框中的 EditText

    我有一种在片段中创建警报对话框的方法 private void alertDialog final EditText editTextField new EditText this getContext AlertDialog dialog
  • 如何通过单击 Android 中当前选项卡中的按钮来转到其他选项卡?

    我试图在 Android 中编写一段代码 通过单击按钮从一个选项卡切换到另一个选项卡 我知道通过单击选项卡我们可以从一个选项卡切换到另一个选项卡 但是是否可以通过单击一个按钮从一个选项卡切换到另一个选项卡 我尝试了以下教程 http www
  • 是否有一个选项可以从 Azure 函数的部署中获取输出值处的事件网格触发器 url + 键?

    是否有一个选项可以从 Azure 函数的部署中获取输出值处的事件网格触发器 url 键 我们想要做的场景如下 我们通过 ARM 在 VSTS 版本中部署功能服务 部署函数服务后 我们部署事件网格订阅 谢谢 什拉达 阿格拉瓦尔 是的 有一种方
  • Maven依赖解析(冲突)

    假设我有四个项目 项目A 依赖于B和D 项目 B 依赖于 D 项目 C 依赖于 D 项目D 在这种情况下 如果我运行项目 A Maven 将正确解析对 D 的依赖关系 如果我理解正确 Maven 总是采用最短路径的依赖关系 由于 D 是 A
  • asyncio:睡眠亚毫秒间隔

    我正在构建一个基于树莓派的设备 它将具有多个应同时工作的并发功能 在这种情况下 使用 asyncio 看起来是一个合理的选择 好吧 我可以用线程用 C 编写所有这些东西 但 python 代码看起来更紧凑 其中一项功能是通过 GPIO 脉冲
  • 使用 VirtualAllocEX 时出现错误代码 487 (ERROR_INVALID_ADDRESS)

    我正在尝试使用 VirtualAllocEx 当我设置dwSize 第三个参数 为大于约 63 MB 的数字 当我查看时会导致生成错误代码 487GetLastError 但是 它适用于较小的大小 例如 4MB 这是我的代码的一部分 Vir
  • 处理传递给 WCF 服务的无效 URI

    我有 WebGet 和 WebInvoke 属性来描述我的合约 但是处理无效 URI 的最佳方法是什么 现在 如果用户传递的 URI 与我当前的操作不匹配 他们会收到 未找到端点 的消息 信息 我想传回更具描述性的消息 例如 我的 URI
  • Android 动态功能:错误 -2 模块不可用

    我一整天都在调试 没有任何结果 我遵循了每个文档和谷歌代码实验室 并将捆绑包上传到内部测试 但错误仍然存 在 模块不可用 下面是我的实现 Module AndroidManifest xml
  • GAE 向所有活动实例发送请求

    有没有办法将请求发送到 Google App Engine 中模块 服务的所有活动实例 如果我可以获得所有活动实例 ID 的列表 我可以发出如下请求https instance dot version dot service dot app
  • 如何将本地 json 加载到 List 变量中?

    如何将本地 json 加载到 List 变量中 这是我本地的 json id 00 name TRL id 01 name USD id 02 name GBP id 03 name EUR 然而这有效 List
  • 用于代码分析的 Java 库

    有没有任何 Java 库可以帮助构建AST http en wikipedia org wiki Abstract syntax tree来自指定的 java 源文件 反之亦然 从 ASTree 对象生成代码 我需要类似的东西this ht
  • Gradle 多个版本的 GRADLE

    为了清楚起见 这不是关于依赖项的多个版本 而是关于 Gradle 自己的 jar 的多个版本 我想this https stackoverflow com questions 28339270 gradle retains multiple
  • 即使从 BIOS 设置启用虚拟化后,也无法在 Windows 10 Home 上运行 Docker Toolbox

    在运行 docker faststart 终端时出现以下错误 运行预创建检查 预创建检查出错 这 计算机未启用 VT X AMD v 在 BIOS 中启用它是 强制 看起来步骤 检查是否 出了问题 机器默认存在 按任意键继续 我已经尝试了从
  • 有没有办法让flymake只在保存时才编译

    当我输入 Flymake 时 光标会稍微悬起 这有点烦人 我想知道是否有一种方法可以告诉 Flymake 在每次更改某些内容时不要解析和编译 只需在保存时执行即可 还有其他建议吗 Thanks 您可以覆盖flymake after chan
  • 退出vim后保持编辑文件的视图

    当我退出 vim 时 显示内容将恢复为我进入之前所看到的内容 在非 vim vi 上 除了底线之外 您可以保持 vi 屏幕完整 vim 中是否有一个选项允许后一种行为 Vim 使用一个称为备用屏幕在那里编写它的 UI 并在退出时恢复原始 s
  • 在 Swift 中获取 PHAsset 的位置

    由于某种原因location财产在PHAsset仅在 Objective c 中公开 在 Swift 中不公开 文档 PHAsset location https developer apple com library prerelease