在我的应用程序中,我以模态方式呈现视图控制器,并且此视图控制器包含UICollectionView填充超级视图的视图.集合视图中的每个单元格都需要全屏 - 与视图边界的大小相同.要做到这一点,我简单地设置itemSize的UICollectionViewFlowLayout是视图的约束的大小viewDidLayoutSubviews.
这在除了横向上的iPhone X之外的所有设备和方向上都能很好地工作.在这种情况下展示该屏幕时,安全区域布局边距似乎正在起作用并影响单元的定位.将单元从显示器的左边缘推过,并向上推,使得单元的底部与主指示器的垂直中心对齐.使用View Debugger检查布局显示集合视图填充屏幕,但单元格的Y位置为-10.67,X位置为0,即使它是从集合视图的前导插入.值得注意的是,这是在控制台中记录的:
The behavior of the UICollectionViewFlowLayout is not defined because:
the item height must be less than the height of the UICollectionView minus the section insets top and bottom values, minus the content insets top and bottom values.
The relevant UICollectionViewFlowLayout instance is <UICollectionViewFlowLayout: 0x7fa6311253b0>, and it is attached to <UICollectionView: 0x7fa63207e800; frame = (0 0; 812 375); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: …Run Code Online (Sandbox Code Playgroud) 我已经成功地将一个大型数据库备份文件(35 GB)复制到了Docker容器中,并在本地还原了我的数据库(遵循本演练)。我现在想从Docker容器中删除该.bak文件以回收空间。我通过运行来做到这一点,sudo docker exec sql_server rm -rf /var/opt/mssql/backup/example.bak但这并没有回收空间-我的Docker.raw文件仍然保留约76 GB。当我运行docker system df它时,我的容器虽然是45 GB。我试过了,docker system prune -a但是回收了0B。重新启动Docker并不能解决问题。现在已删除文件以获取该空间,我该如何缩小呢?
我们的项目遇到异常:
2019-08-08 10:18:28.703708-0600 AppName[99385:5069475] *** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: !destNodeMixerConns.empty() && !isDestNodeConnectedToIONode'
*** First throw call stack:
(
0 CoreFoundation 0x000000010ee2e8db __exceptionPreprocess + 331
1 libobjc.A.dylib 0x000000010e21bac5 objc_exception_throw + 48
2 CoreFoundation 0x000000010ee2e662 +[NSException raise:format:arguments:] + 98
3 AVFAudio 0x0000000111b94dbc _Z19AVAE_RaiseExceptionP8NSStringz + 156
4 AVFAudio 0x0000000111bf3937 _Z11_AVAE_CheckPKciS0_S0_b + 295
5 AVFAudio 0x0000000111b8cb8f _ZN18AVAudioEngineGraph8_ConnectEP19AVAudioNodeImplBaseS1_jjP13AVAudioFormat + 1031
6 AVFAudio 0x0000000111bfb598 _ZN17AVAudioEngineImpl7ConnectEP11AVAudioNodeS1_mmP13AVAudioFormat + 194
7 AVFAudio 0x0000000111bfb5ff -[AVAudioEngine connect:to:format:] + 83
8 AppName 0x000000010a424c10 $s8AudioKitAAC6outputAA6AKNodeCSgvWZTf4dd_n …Run Code Online (Sandbox Code Playgroud) 在 iOS 13 中,我收到了一些崩溃报告,这些报告似乎是在接收productsRequest(_:didReceive:)到request(_:didFailWithError:). 该文档没有说明调用这些线程的哪个线程,但我相信它一直是主队列。他们现在是从不同的队列中被调用吗?
我正在寻找创建一个闭源 CocoaPod。根据我的研究,建议似乎是将其作为 XCFramework 分发。(来源)似乎还可以通过在 Podspec 文件中指定其他 CocoaPods 来使您的框架依赖于它们。( source ) ( source ) 这将确保当有人将此 pod 添加到其 Podfile 并运行时pod install,它将安装此框架及其依赖项。
我创建了一个框架 Xcode 项目,并在我们应用程序的工作区中将其作为子项目进行开发。所以此时,应用程序已经通过 CocoaPods 安装了所有依赖项,这使得其中的框架可以利用它们。现在我准备好准备分发框架,以便它可以在其他应用程序中使用。
据我了解,我需要先创建一个 XCFramework,然后才能为其创建一个 CocoaPod。当我去归档框架项目时,我收到一个错误,因为它找不到依赖项,这是有道理的。此时我不明白这是如何工作的,因为框架似乎需要包含在其自身中的依赖项才能成功创建 XCFramework,但我从我的研究中预计这将由 CocoaPods 处理,而不包含在框架本身。
xcodebuild archive \
-scheme MyFramework \
-configuration Release \
-destination 'generic/platform=iOS' \
-archivePath './build/MyFramework.framework-iphoneos.xcarchive' \
SKIP_INSTALL=NO \
BUILD_LIBRARIES_FOR_DISTRIBUTION=YES
Run Code Online (Sandbox Code Playgroud)
/Users/.../AppName/MyFramework/Helpers/Extensions.swift:10:8: error: no such module 'Kingfisher'
import Kingfisher
^
** ARCHIVE FAILED **
Run Code Online (Sandbox Code Playgroud) iOS 16.4 已弃用unarchiveTopLevelObjectWithData(_:)并应替换为unarchivedObject(ofClass:from:).
当您归档像 一样的 Swift Dictionary 时[String: Any],如何使用较新的 API 来取消归档它?
NSKeyedUnarchiver.unarchivedObject(ofClass: [String: Any].self, from: data)导致构建时错误:
静态方法“unarchivedObject(ofClass:from:)”要求“[String : Any]”符合“NSCoding”
//create the data from dictionary
let dictionary: [String: Any] = ["Text": "Hello", "Number": 1, "Array": ["Hello", "World"]]
let data = try! NSKeyedArchiver.archivedData(withRootObject: dictionary, requiringSecureCoding: true)
//and later get the dictionary from the data
let dictionary = try? NSKeyedUnarchiver.unarchivedObject(ofClass: [String: Any].self, from: data) //sorry no can do
Run Code Online (Sandbox Code Playgroud) 我已经设置了应用程序组并且正在使用NSUserDefaults initWith suiteName以允许我的应用程序和我的扩展程序访问相同的首选项集。我现在想用一个将通过 iCloud 同步这些首选项的实现替换该实现(如果它们启用了 iCloud)。
我已经阅读了NSUbiquitousKeyValueStore这似乎正是我所需要的。但是,文档指出“应用必须始终使用默认的 iCloud 键值存储对象来获取和设置值。此存储与您的应用在其权利请求中提供的唯一标识符字符串相关联。” 这让我相信,如果我采用这一点,应用扩展将不会访问与主应用相同的商店。扩展编程指南中没有提到共享这样的存储,它只提到了一个允许访问相同首选项但仅存储在该设备本地的解决方案。
如何实现也可以从该应用程序的扩展访问的简单首选项的 iCloud 同步?
另一个快速问题,iOS 8 有什么变化吗?我知道 iCloud API 发生了重大变化,但也许他们没有触及简单的首选项同步,只是实现了 iCloud Drive?
nsuserdefaults ios icloud nsubiquitouskeyvaluestore ios-app-extension
我已经实现了一个由我网页上的按钮触发的弹出窗口。这个弹出窗口几乎填满了整个屏幕,并阻止用户与网页上的任何内容进行交互,直到弹出窗口被关闭。这对视力正常的用户很有效,但是在 Mac 上使用 VoiceOver 时,您仍然可以导航底层网页内容,而盲人用户不会知道出现了一个弹出窗口。
如何防止 VoiceOver 导航页面上除一个div元素(以及其中的每个元素div)之外的每个元素?
我知道可以用aria-hidden="true"它来对屏幕阅读器隐藏它,并且我知道可以强制将焦点放在一个元素上,但我不确定如何最好地实现这一点。我是否需要遍历整个 DOM 并基本上隐藏所有内容,然后在关闭时取消隐藏所有内容?或者是否有更好的方法,一些定义可能呈现的此类元素的 ARIA 属性?
展示所需行为的网站是Piazza。当您激活登录按钮时,它会显示一个弹出式模式对话框并要求获得焦点,并且您无法离开它,直到您关闭弹出窗口。
我创建了一个我在iOS应用程序和Watch应用程序中使用的模型类 - 它包含在两个目标中.现在我必须UIPasteboard在这个只能使用的类中使用UIKit,这对watchOS是不可用的.虽然我可以毫无问题地将UIKit导入到这个文件中,但是当我使用UIPasteboard它时它将无法编译,因为手表扩展程序不知道它.
如何UIPasteboard在我的手表应用程序可用的类中使用?
我想知道当设备不是Apple Watch时我是否只能运行该代码#available,但这并没有解决问题.
if #available(iOS 7.0, *) {
UIPasteboard.generalPasteboard()...
//ERROR: Use of unresolved identifier 'UIPasteboard'
} else {
//don't use UIPasteboard
}
Run Code Online (Sandbox Code Playgroud) 给定一个unicode符号作为String其XML或HTML实体,如何生成其Unicode编号?例如,如果您获得了字符串"?",并且可以生成其HTML代码(෴),那么您如何生成其Unicode编号(U+0DF4)?
我目前正在使用CFStringTransformAPI 生成HTML实体并kCFStringTransformToXMLHex用于转换.但是unicode号本身没有变换.