标签: ios12

11
推荐指数
2
解决办法
1万
查看次数

Unarchive数组与NSKeyedUnarchiver unarchivedObject(ofClass:from :)

自从升级到Swift 4.2以来,我发现许多NSKeyedUnarchiver和NSKeyedArchiver方法已被弃用,我们现在必须使用type方法static func unarchivedObject<DecodedObjectType>(ofClass: DecodedObjectType.Type, from: Data) -> DecodedObjectType?来取消归档数据.

我成功地存档了我的定制类WidgetData的数组,这是一个NSObject子类:

private static func archiveWidgetDataArray(widgetDataArray : [WidgetData]) -> NSData {

    guard let data = try? NSKeyedArchiver.archivedData(withRootObject: widgetDataArray as Array, requiringSecureCoding: false) as NSData
        else { fatalError("Can't encode data") }

    return data

}
Run Code Online (Sandbox Code Playgroud)

当我尝试取消归档此数据时出现问题:

static func loadWidgetDataArray() -> [WidgetData]? {

    if isKeyPresentInUserDefaults(key: USER_DEFAULTS_KEY_WIDGET_DATA) {

        if let unarchivedObject = UserDefaults.standard.object(forKey: USER_DEFAULTS_KEY_WIDGET_DATA) as? Data {

            //THIS FUNCTION HAS NOW BEEN DEPRECATED:
            //return NSKeyedUnarchiver.unarchiveObject(with: unarchivedObject as Data) as? [WidgetData]

            guard let nsArray = …
Run Code Online (Sandbox Code Playgroud)

ios nskeyedunarchiver swift ios12

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

如何使用 unarchivedObjectOfClass:fromData:error: 解压数据?

我正在使用unarchiveObjectWithData取消归档数据NSUserDefaults并且它运行良好,但它在 iOS 12.0 中已被弃用。Xcode 建议使用unarchivedObjectOfClass:fromData:error:,但此方法不起作用。

我有一个类的对象数组要取消归档。

我曾尝试使用unarchivedObjectOfClass:fromData:error:, 也unarchivedObjectOfClasses:fromData:error:与所有类(NSArray、NSString、MYCLASS ..)

作品

NSArray *stored = [NSKeyedUnarchiver unarchiveObjectWithData:data];
Run Code Online (Sandbox Code Playgroud)

才不是:

NSArray *stored = [NSKeyedUnarchiver unarchivedObjectOfClass:[MYCLASS class] fromData:data error:&error];
Run Code Online (Sandbox Code Playgroud)

我收到“无法读取数据,因为它的格式不正确。”

objective-c ios ios12

11
推荐指数
1
解决办法
7508
查看次数

AVAudioSession路由改变iOS 12

升级到iOS 12和XCode 10之后我有以下内容:

 2018-09-20 11:58:09.622656+0400 MyApp-Swift[1027:137400] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port Speaker (type: Speaker)
Run Code Online (Sandbox Code Playgroud)

知道它是什么,它是应用程序中的错误还是iOS 12中的已知问题?

avfoundation ios avaudiosession ios12

10
推荐指数
0
解决办法
843
查看次数

preferredStatusBarStyle var在iOS12中不起作用?

添加

application.statusBarStyle = .lightContent
Run Code Online (Sandbox Code Playgroud)

到我的AppDelegate的didFinishLaunchingWithOptions方法也没有添加

override var preferredStatusBarStyle: UIStatusBarStyle {
    return UIStatusBarStyle.lightContent
}
Run Code Online (Sandbox Code Playgroud)

到VC不再适用于iOS12/Xcode10

有任何想法吗?

ios12 xcode10

10
推荐指数
3
解决办法
6090
查看次数

Safari 12取代了授权标头

我们有一个受基本身份验证保护的网络服务器(nginx)https://www.website.com.API https://www.website.com/api没有基本身份验证!

现在的问题是,自Safari 12(macOS和iOS)以来,由我们的javascript应用程序设置的带有/ api请求的承载令牌的http头实际上没有发送到服务器,因为它被替换为基本令牌.我可以在safari开发人员工具的网络选项卡中看到这一点.如前所述/ api是公开的,不受保护!

Chrome例如确实发送了正确的承载令牌,而不是基本令牌.

当我在nginx配置中删除基本身份验证并重新启动safari时,一切正常,并且Bearer令牌被发送到api.

似乎safari 12只是为域的每个请求自动发送基本令牌.

有没有人知道这是否是野生动物园的一个错误?一种解决方案可能是我们将api目标从/ api更改为单独的子域,如api.website.com.

谢谢你的帮助.

safari authorization basic-authentication bearer-token ios12

10
推荐指数
1
解决办法
747
查看次数

Xcode 不显示 iOS 12.5 模拟器

我无法从(Xcode -> 首选项 -> 组件)找到模拟器的iOS 12.5版本。

在此输入图像描述

我在 Xcode 12.2 和 12.4 版本上检查过,但没有成功。有谁知道为什么?,我需要执行任何更新吗?,组件部分中显示的最新 iOS 版本 Xcode 是14.3

version ios ios-simulator ios12 xcode12

10
推荐指数
0
解决办法
756
查看次数

在较旧的iOS模拟器上运行时Xcode 10测试失败 - "无法加载测试包...找不到合适的图像"

我安装了Xcode 10并将我的iOS应用程序升级到Swift 4.2.当我通过Xcode运行我的测试(UI和单元)时,在运行iOS 12的iPhone模拟器上,测试成功启动.当我尝试在运行先前iOS版本(例如iOS 10.3.1)的模拟器上运行测试时,我得到"无法加载测试包".这些测试在Xcode 9.4上成功运行.我可以在这个旧的模拟器上运行我的应用程序而不会出现问题.

Xcode输出如下("Reading List"是应用程序名称):

2018-09-16 15:11:36.667 ReadingList [11401:11478426]无法从文件加载测试包:/// Users/andrewbennet/Library/Developer/Xcode/DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator /ReadingList.app/PlugIns/ReadingList_UnitTests.xctest/:Error Domain = NSCocoaErrorDomain Code = 3587"dlopen_preflight(/Users/andrewbennet/Library/Developer/Xcode/DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app /PlugIns/ReadingList_UnitTests.xctest/ReadingList_UnitTests):找不到合适的图像.找到:/Users/andrewbennet/Library/Developer/Xcode/DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app/PlugIns/ReadingList_UnitTests .xctest/ReadingList_UnitTests:mach-o,但不是为iOS模拟器构建的"UserInfo = {NSLocalizedFailureReason =捆绑包已损坏或缺少必要的资源.,NSLocalizedRecoverySuggestion =尝试重新安装捆绑包.,NSFilePath =/U sers/andrewbennet/Library/Developer/Xcode/DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app/PlugIns/ReadingList_UnitTests.xctest/ReadingList_UnitTests,NSDebugDescription = dlopen_preflight(/ Users/andrewbennet/Library/Developer/Xcode /DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app/PlugIns/ReadingList_UnitTests.xctest/ReadingList_UnitTests):找不到合适的图像.找到:/Users/andrewbennet/Library/Developer/Xcode/DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app/PlugIns/ReadingList_UnitTests.xctest/ReadingList_UnitTests:mach-o,但不是为iOS模拟器构建的,NSBundlePath =/Users/andrewbennet/Library/Developer/Xcode/DerivedData/ReadingList-edsxqugqvkymbgfrbivbjmzebuya/Build/Products/Debug-iphonesimulator/ReadingList.app/PlugIns/ReadingList_UnitTests.xctest,NSLocalizedDescription =无法加载捆绑"ReadingList_UnitTests"因为它已损坏或缺少必要的资源.}

这条线mach-o, but not built for iOS simulator似乎很关键.我该如何解决这个问题?

xcode ios xctest ios12 xcode10

9
推荐指数
2
解决办法
4013
查看次数

iOS 12锁定屏幕控制音乐应用程序

在iOS 11中,当我锁定iPhone时,我的音乐应用程序会显示锁定屏幕控件.我能够看到当前播放的歌曲和播放/暂停向前和向后跳过.但是在升级到Xcode 10/iOS 12时,我再也看不到锁定屏幕只控制日期和时间......

但是,如果我向上滑动并获得小部件屏幕(您可以在其中打开飞行模式等),我可以看到正在播放的信息.

这就是我所拥有的

在背景模式中

模式

我已将代码更新为以下内容:

叫我的 viewDidLoad

do {
  try AVAudioSession.sharedInstance().setCategory(.soloAmbient, mode: .default, options: .allowAirPlay)
print("Playback OK")
  try AVAudioSession.sharedInstance().setActive(true)
  print("Session is Active")
} catch {
  print(error)
}


UIApplication.shared.beginReceivingRemoteControlEvents()
self.becomeFirstResponder()
Run Code Online (Sandbox Code Playgroud)

我之前没有在上一个工作版本中使用以下代码,但我添加了它,因为我发现了类似的帖子,建议我这样做

if let songInfo = self.mediaPlayer.nowPlayingItem {
  nowPlayingInfoCenter.nowPlayingInfo = [
    MPMediaItemPropertyTitle: songInfo.title ?? "",
    MPMediaItemPropertyArtist: songInfo.artist ?? "",
    MPMediaItemPropertyArtwork : songInfo.artwork?.image(at: CGSize(width: 400, height: 400)) ?? #imageLiteral(resourceName: "emptyArtworkImage")]
}
Run Code Online (Sandbox Code Playgroud)

我把断点放在do try它上面不打印任何打印功能并跳过它try

我的代码转换错了吗?

ios swift ios12

9
推荐指数
1
解决办法
2388
查看次数

如何创建一个接受用户传递的输入的Siri Intent

我用如下参数创建了一个自定义Intent:

在此输入图像描述

我捐了它:

let intent = PlayIntent()
intent.color = color
let interaction = INInteraction(intent: intent, response: nil)
interaction.donate()
Run Code Online (Sandbox Code Playgroud)

它显示正确:

在此输入图像描述

但是,我想要一个接受用户输入的Intent.示例,Messages.app:

在此输入图像描述

如何配置我的自定义Intent来处理输入?

ios nsuseractivity sirikit ios12 sirishortcuts

9
推荐指数
1
解决办法
1775
查看次数