小编Nic*_*kDK的帖子

dyld 未找到 AVAssetDownladTask

尝试将离线 HLS(ios 10 的一项新功能)添加到应用程序。我正在快速尝试以下操作,以便应用程序在没有离线 HLS 功能的情况下仍能在 ios 9 上运行。在 ios10 上运行良好,也可以为 ios9 编译。

    @available(iOS 10.0, *)
    @objc class DownloadManager: NSObject, AVAssetDownloadDelegate {
           //Do stuff with downloading assets
      }
Run Code Online (Sandbox Code Playgroud)

但是,当我在 ios 9 设备上实际运行它时,应用程序立即崩溃并显示以下消息:

dyld:未找到符号:_OBJC_CLASS_$_AVAssetDownloadTask 引用自:/var/mobile/Containers/Bundle/Application/7062C410-C4F5-4270-9F1E-22750E99F799/wod.app/wod 预期在:/Systemworks/FoundaryFrame /var/mobile/Containers/Bundle/Application/7062C410-C4F5-4270-9F1E-22750E99F799/wod.app/wod中的框架/AVFoundation

我已将与此相关的所有代码都限制在 DownloadManager 类中,所以我不知道下一步该做什么。谢谢!

http-live-streaming ios swift ios10 avassetdownloadtask

12
推荐指数
2
解决办法
2446
查看次数

运行模拟器4.0的iPhone应用收到了Sigkill

我刚拿到了iPhone SDK 4,而我正试图开发一个我之前正在开发的应用程序.所以我实现了两个 -(void)applicationDidEnterBackground:(UIApplication *)application- (void)applicationWillTerminate:(UIApplication *)application

当我单击模拟器4.0中的主页按钮时,它似乎工作正常.应用程序调用 -(void)applicationDidEnterBackground:(UIApplication *)application并进入后台状态..

但是,我然后双击主页按钮以显示在后台运行的应用程序,并按住它以显示减号或退出.当我点击减号时,调试器说

节目收到信号:"SIGKILL"

此外,- (void)applicationWillTerminate:(UIApplication *)application永远不会被称为.我错过了我需要做的事情才能在OS4上工作吗?或者至少可以有人指出我调试SIGKILL的方法.谢谢.

iphone debugging sigkill ios4

8
推荐指数
1
解决办法
9075
查看次数

iOS 离线 HLS 文件大小

在 iOS 10 中,Apple 添加了离线 HLS。在文档中,他们提到:

重要提示:下载的 HLS 资产以私有包格式存储在磁盘上。此捆绑包格式可能会随着时间的推移而改变,开发人员不应尝试直接访问或存储捆绑包中的文件,而应使用 AVFoundation 和其他 iOS API 与下载的资产进行交互。

似乎对有关这些文件的信息的访问受到限制。我正在尝试查找存储文件的大小。这就是我所做的。下载完成后,我保存相对路径

func urlSession(_ session: URLSession, assetDownloadTask: AVAssetDownloadTask, didFinishDownloadingTo location: URL) {
        //Save path
        video?.downloadPath = location.relativePath

    }
Run Code Online (Sandbox Code Playgroud)

后来我重建文件路径如下

if let assetPath = workout.downloadPath {
                let baseURL = URL(fileURLWithPath: NSHomeDirectory())
                let assetURL = baseURL.appendingPathComponent(assetPath)
Run Code Online (Sandbox Code Playgroud)

这有效:

try FileManager.default.removeItem(at: assetURL)
Run Code Online (Sandbox Code Playgroud)

这不会并返回文件不存在的错误:

let att = try FileManager.default.attributesOfItem(atPath: assetURL.absoluteString)
Run Code Online (Sandbox Code Playgroud)

我可以按如下方式加载视频资产并使用以下命令离线播放:

let avAsset = AVURLAsset(url: assetURL)
Run Code Online (Sandbox Code Playgroud)

但这会返回一个空数组:

let tracks = avAsset.tracks(withMediaType: AVMediaTypeVideo)
Run Code Online (Sandbox Code Playgroud)

再一次,我只是想获取离线 HLS 资产的文件大小。看来 SO 上使用 FileManager 获取文件大小的其他答案不适用于这些,也不适用于获取加载的 AVAsset 大小的答案。提前致谢。

avfoundation http-live-streaming ios avasset swift

5
推荐指数
1
解决办法
986
查看次数

保存到iPhone的文件名有哪些限制?

我似乎无法找到任何关于此的文档.可以在文件名中使用的字符数量是否有限制和/或是否对iPhone应用程序保存的文件名中可以​​使用的字符有限制?谢谢.

iphone filenames cocoa-touch nsfilemanager

4
推荐指数
1
解决办法
1443
查看次数

在iOS 11中,如何使核心数据在核心聚光灯下可搜索

如WWDC所述,iOS 11应该支持索引核心数据,以便可以通过Spotlight对其进行搜索。这是WWDC的演示文稿:

https://developer.apple.com/videos/play/wwdc2017/210/

但是,在观看视频并查看文档之后,我仍然不知道如何设置我的核心数据对象,以便可以从手机的聚光灯搜索中搜索它们。

我猜主要问题是:

1.)您实际上如何设置可以搜索特定对象类型的哪些属性。

2.)如何设置NSCoreDataCoreSpotlightDelegate并获取它来处理数据?看起来NSPersistentStore有一个属性

var coreSpotlightExporter:NSCoreDataCoreSpotlightDelegate

但这只准备好了:(

我找不到任何可以清楚地解释这些内容的内容。谢谢!

core-data ios corespotlight ios11

4
推荐指数
1
解决办法
967
查看次数

文件属性NSFileModificationDate在iPad应用程序中的预期时间后5小时返回时间

您好我在iPad应用程序中使用以下NSFileManager方法:

- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)

获取文件属性,然后使用密钥NSFileModificationDate获取最新的文件修改日期/时间.但是,它返回给我的日期/时间比我实际保存文件的日期早了5个小时,这是我在查看文件属性时在"Finder"中看到的内容.

我知道一个解决方法/黑客会在我回来的时候敲5个小时,但我想知道为什么会这样.有人知道吗?谢谢.

iphone cocoa file objective-c nsfilemanager

0
推荐指数
1
解决办法
3113
查看次数