首先,重要的是要知道OSLogStore 在 iOS 中不起作用就在 4 个月前,由于那是最近的事,而且文档又非常稀少,一年前可能正确的内容今天可能并不正确。
\n这是我的问题的一些背景(几乎是从这个 reddit 帖子中盗来的):
\n\n\n我开发的开源应用程序大约有 1000 个用户,用户时不时会报告一些奇怪的行为。
\n该应用程序使用[记录器 ] 来记录重要事件...是否可以使用远程日志记录服务,以便我可以获取此信息并为用户解决问题?
\n
我只关心是否有统一的日志系统是否有解决这个问题的方法。假设我能够与具有“奇怪行为”的用户交谈,并且他们不是技术人员。
\n我得到了一些提示,表明 OSLogStore 可能是一种获取远程日志的方法,但官方文档太少了,我无法判断。具体来说,init(url:)看起来很有趣,但也许它只接受file://协议或其他东西。
日志记录文档说它可以用于“当您无法将调试器附加到应用程序时,例如当您\xe2\x80\x99在用户\xe2\x80\x99s机器上诊断问题时”,但没有任何地方说这个怎么做。
\n我目前有一个简单的 SwiftUI ScrollView,其中包含单个元素。我添加了该.refreshable(action: )属性以允许(下拉)刷新视图。但是,这只会在拉动刷新时显示默认的灰色微调器。有没有办法可以改变微调器的颜色/样式?
我想要一个带有 SwiftUI 的底部工具栏。以下内容适用于 iOS 15,但不适用于 iOS 16。在 iOS 16 中,工具栏未显示。(如果我改变位置就可以了......)
Text("Content")
.toolbar {
ToolbarItemGroup(placement: .bottomBar) {
Button("Greeting") {
print("Hello world!")
}
}
}
Run Code Online (Sandbox Code Playgroud)
您对此有什么解决方法吗?
谢谢!
我们正在尝试在 iOS 15 上测试应用程序,发现我们收到此消息应用程序需要更新。
任何人都可以让我知道这条消息背后的原因吗?现有用户必须删除该应用程序并重新安装才能摆脱此警报。
使用该.searchable(text: $text)功能时,搜索时搜索栏中会出现取消按钮。
单击取消按钮时有什么方法可以执行操作吗?我想在单击“取消”时调用一个函数,但无法弄清楚如何在点击“取消”时执行操作。
苹果文档没有提及任何相关内容。回到 UIKit 中,就有了func searchBarCancelButtonClicked(searchBar: UISearchBar) {这样做的方法。
我使用 iOS15 的 SwiftUI 可搜索修饰符通过 onSubmit 修饰符进行搜索以发送 HTTP 请求,并且我还想在用户点击“取消”按钮时重置初始列表;如果我找到了 onCancel 修饰符,我将不胜感激。有人卖过这个吗?
UITableView显示没有节页脚的多个节,节之间有额外的空间。Xcode 的视图调试器显示它不是视图,而只是一个空白区域。
就我而言,这种行为是不受欢迎的。
添加 1.0/0.0 高度页脚并没有帮助。更改表视图的style.
这是示例代码:
import UIKit
final class ViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
tableView.separatorColor = .yellow
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 3
}
override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let header = UIView()
header.backgroundColor = .green
return header
}
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 20.0
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) …Run Code Online (Sandbox Code Playgroud) 使用Swift5.5、iOS15.0.1、
从 iOS15 开始,我意识到与我现有的 URL 扩展相关的一些弃用行为正在发生。
我没有找到任何关于如何重写现有扩展的好的文档。
这是我当前的实现,大约是。16个折旧警告,我不知道如何使用iOS15规避。对此的任何想法都受到高度赞赏!
extension URL {
func mimeType() -> String {
let pathExtension = self.pathExtension
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension as NSString, nil)?.takeRetainedValue() {
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
return mimetype as String
}
}
return "application/octet-stream"
}
var containsImage: Bool {
let mimeType = self.mimeType()
guard let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType as CFString, nil)?.takeRetainedValue() else {
return false
}
return UTTypeConformsTo(uti, kUTTypeImage)
}
var containsAudio: Bool {
let mimeType = self.mimeType() …Run Code Online (Sandbox Code Playgroud) iOS 15 添加了新功能,UIKeyboardLayoutGuide能够对需要与键盘做出反应的视图施加约束。
这在单个视图中效果很好,但是当您在视图 A中设置约束并将视图 B推入堆栈时,键盘布局指南突然变为CGRect.zero(在视图 A中)的大小。
当返回到视图A时,键盘布局引导框架是静止的,因此键盘布局引导顶部和“SomeView”.bottom.zero之间的约束例如被打破。
为了展示这个问题,我向跟踪控制器添加了一个绿色视图,并向键盘布局指南顶部锚点添加了底部约束,如下所示:
let kbView = UIView()
kbView.backgroundColor = .green
kbView.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(kbView)
kbView.widthAnchor.constraint(equalToConstant: 200).isActive = true
kbView.heightAnchor.constraint(equalToConstant: 100).isActive = true
kbView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
kbView.bottomAnchor.constraint(equalTo: self.view.keyboardLayoutGuide.topAnchor).isActive = true
Run Code Online (Sandbox Code Playgroud)
您可以在 Github 上的以下链接中找到整个项目。
我们如何解决这个问题?其他人也遇到过这个问题吗?
我当前的解决方法是编写自己的布局指南,该指南可以正常工作,并且与 iOS < 15 兼容。
真的,这不可能是真的(?!),因为这是一个新的、闪亮的功能……
也许我忽略了一些东西……
无论如何:这是展示该问题的演示项目。
对于我们的项目,我们需要使用最新的 Xcode 和 iOS 版本来构建和发布基础设施。Apple 于 2021 年 10 月最后一周发布了 Xcode 13.1 和 iOS 15.1,但没有用于运行测试的 iOS 15.1 目标(模拟器)。
知道它们通常什么时候出现在 Xcode 中吗?