小编fla*_*pys的帖子

如何在没有动画的情况下更新 SwiftUI 列表

我想在没有任何插入动画的情况下更新 SwiftUI 列表。我List正在从一个@EnvironmentObject 我已经尝试将其List自身和包装PassthroughSubject.send()在一个withAnimation(.empty)块中的数据中获取它的数据,但这无济于事。

一个非常非常脏的解决方法是调用UIView.setAnimationsEnabled(false)(是的,UIKit 对 SwiftUI 有影响),但必须有一种类似于 SwiftUI 的方式来设置自定义插入动画。

ios swift swiftui

12
推荐指数
3
解决办法
4009
查看次数

CoreBluetooth广告在iOS 10的后台

第一:我有一台iPad Air 2和一台iPhone 7.为了进一步阅读,我们估计该应用程序处于活动状态并在iPad上以及在iPhone上以后台模式打开.该应用程序完全相同,即使使用相同的蓝牙服务UUID和相同的DataLocalNameKey.

我想写一个可以在后台宣传蓝牙服务的应用程序,并且能够发现这项服务(在后台也是最佳的).正如我已经读过的那样,我不能使用苹果信标技术,因为它只能在背景中接近扫描/通知信标(我测试过,工作正常)但不能做广告.所以我开始使用CoreBluetooth,如上面提到的SO答案所述,因为它可以在后台做广告.

我的应用程序didDiscoverPeripheral在iPhone上的CBCentralManagerDelegate中调用方法(后台应用程序),因此它检测到了iPad.isAdvertisingiPhone上的CBPeripheralManager 的属性是true.但是didDiscoverPeripheral没有在iPad上调用.我有点困惑.一个选择是我的iPad由于某些原因不再能够检测到iPhone,或者我的iPhone正在撒谎而且它不是广告.

所以我认为我只是有点愚蠢和google搜索"CoreBluetooth调试应用程序".我找到了VicinityAltBeacon.对于这两个应用程序,行为是相同的!如果您是广告应用程序的后台(按主页/睡眠按钮),浏览应用程序将无法再发现它.如果您打开应用程序的后台,它将立即发现它.两个应用程序都提到它可以与它们在后台播放.

难道我做错了什么; 这种行为有望吗?我误解了这个框架吗?你能证实这种行为吗?

要确认这一点,最快的方法是在两台设备上安装Vicinity(您必须将NSBluetoothPeripheralUsageDescription密钥添加到Info.plist)将一台设备设置为广播,然后按主页按钮.

bluetooth ios core-bluetooth ibeacon ios10

7
推荐指数
2
解决办法
3722
查看次数

iCloud Keychain通知更新

我正在使用SSKeychain实现的新的iCloud Keychain功能.我设置kcQuery.synchronizationMode = SSKeychainQuerySynchronizationMode.Yes了密码

iCloud Keychain现在有用吗?它会与我的其他iDevices同步吗?

我的商品推送到iCloud需要多长时间?

有新方法通知我新密码是否到达我的设备?

谢谢!

objective-c ios sskeychain swift

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

Swift 2错误处理和while

例如以下代码:

while let data = Provider.getData() {
    ...
}
Run Code Online (Sandbox Code Playgroud)

使用Swift 2你会得到两个错误:
条件绑定的初始化程序必须具有可选类型,而不是'字符串'
调用可以抛出,但它没有标记为'try'并且不处理错误.

这里做错误处理的最佳解决方案是什么
......如果我想在这个方法中处理错误.
...如果我想抛出错误.

swift swift2

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

KeychainWrapperItem在iOS 7.1中停止工作

我最近安装了iOS 7.1模拟器和新的Xcode 5.1.我的应用程序在iOS 7中运行良好.我正在使用Apple的KeychainItemWrapper类.更新后,它崩溃了以下消息:

*** Assertion failure in -[KeychainItemWrapper writeToKeychain]
Run Code Online (Sandbox Code Playgroud)

特别是在第299行:

NSAssert( result == noErr, @"Couldn't update the Keychain Item." );
Run Code Online (Sandbox Code Playgroud)

听到错误-25300(errSecItemNotFound)

我在我的权利文件中指定了Keychain Access Group.此错误仅发生在iOS 7.1模拟器中,而不是在真正的iPhone或7.0模拟器上.

有谁知道7.1中Keychain的变化?

keychain ios keychainitemwrapper

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

do-catch中的var init

以下代码:

// Setup components
do {
    let captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
    let deviceInput   = try AVCaptureDeviceInput(device: captureDevice)
    let output        = AVCaptureMetadataOutput()
    let session       = AVCaptureSession()
} catch {
    return false
}
Run Code Online (Sandbox Code Playgroud)

在此之后,您无法访问初始化变量.如果我想访问例如,则错误是"使用未解析的标识符" deviceInput.但为什么?要么AVCaptureDeviceInput()崩溃与追赶块返回或全部是正确和变量初始化成功.什么是解决这个问题的最佳解决方案?

swift swift2

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