考虑到下面的代码,我希望我的 TabView 在显示选项卡视图时显示随机计算的图像,但事实并非如此。它将始终在索引 0 处显示第一个图像。如果我在 TabView 初始化程序(即.constant(n))中对选择进行硬编码,那么它将正确显示所选图像。我已经对此提交了雷达(FB7844985),但想检查我是否遗漏了一些明显的东西?
struct ContentView: View {
let assets: [String] = (1...32).map { "preview_\($0)"}
@State private var selection: Int = 0
@State private var isPresented: Bool = false
var body: some View {
VStack {
Button("Random element") {
selection = Int.random(in: 1...32)
isPresented = true
}
}
.sheet(isPresented: $isPresented) {
SlideshowView(selection: $selection, assets: assets)
}
}
}
struct SlideshowView: View {
@Binding var selection: Int
var assets: [String]
var body: some View {
TabView(selection: …Run Code Online (Sandbox Code Playgroud) 我有以下 SwiftUI 视图,其中包含一个子视图,该子视图在五秒后消失。showRedView淡入淡出是通过接收组合时间发布者的结果触发的,但是更改发布者接收器块中的值sink会导致内存泄漏。
import Combine
import SwiftUI
struct ContentView: View {
@State var showRedView = true
@State var subscriptions: Set<AnyCancellable> = []
var body: some View {
ZStack {
if showRedView {
Color.red
.transition(.opacity)
}
Text("Hello, world!")
.padding()
}
.onAppear {
fadeRedView()
}
}
func fadeRedView() {
Timer.publish(every: 5.0, on: .main, in: .default)
.autoconnect()
.prefix(1)
.sink { _ in
withAnimation {
showRedView = false
}
}
.store(in: &subscriptions)
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这是通过该系列在幕后以某种方式进行管理的AnyCancellable。我对 SwiftUI 和 Combine …
让我们从现有的问题开始,
使用 Swift 5.1 编译的模块无法被 Swift 5.1.2 编译器导入
使用 Swift 5.1 编译的模块无法被 Swift 5.0 编译器导入
使用 Swift 5.1.2 编译的模块无法被 Swift 5.2.4 编译器导入
并且,现在使用 XCode 12(12A7209)
使用 Swift 5.2.4 编译的模块无法被 Swift 5.3 编译器导入
该框架是在较低版本的 Swift(Swift 5.2.4)中编译的。然而,它与 XCode 12 beta 完美配合。
尝试过的解决方案:
Build Libraries for Distribution为Yes重点是二进制框架的 Swift ABI 稳定性以及如何跨不同的 swift 版本实现它。
请指教。先感谢您!
如何在 Xcode 12 上调试小部件 (WidgetKit)?
例如,设置断点或至少使print语句起作用。
谢谢你!
我正在使用 SWIFTUI、RealmSwift 和 Xcode 12.4 开发一个应用程序 随着开发,Realm 数据模型发生变化,例如。有些值被删除,有些值被添加......
当我对数据模型进行更改时,我只需删除设备上的应用程序并重新安装它,以避免因领域迁移问题而导致崩溃。现在的问题是,Xcode Preview 由于同样的迁移问题而崩溃,我不知道如何为 Xcode Preview 进行全新的重新构建。
下面是 Xcode 给我的 DiagnosticReports。
由于以下错误,需要迁移:
- 属性“A”已被删除。
- 已添加属性“B”。
领域迁移用于预览?这没有道理!
我尝试清理构建、删除派生数据、重新启动......但没有运气。应该有某种方法来处理预览提供程序的领域模型更改。
请有人指导我该怎么做才能恢复我的预览。
我们在 Xcode 12 中遇到了“中止陷阱 6”的问题。由于这个原因,应用程序无法使用 Xcode 12 运行。我们正在使用 swift 5 版本和 jsqmessageviewcontroller 目标 c 库。进入 Xcode 12 时出现以下错误。
<unknown>:0: error: fatal error encountered while reading from module 'wwww'; please file a bug report with your project and the crash log
<unknown>:0: note: module 'wwww' full misc version is '5.3.2(5.3.2)/Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)'
top-level value not found
Cross-reference to module 'JSQMessagesViewController'
... JSQMessageMediaData
error: Abort trap: 6 (in target 'zapwww' from project 'zapwww')
Run Code Online (Sandbox Code Playgroud)
如果有人有解决方案,请帮助我们。
将应用程序上传到 App Store 时出现代码签名错误,它在模拟器和设备中运行良好,仅在上传时出现此错误。
我的应用程序的这个目标使用的是我开发的框架,所以之前它给出了框架的代码签名错误,所以我做了一些与代码签名相关的更改,它消失了,但现在它给出了相同的代码签名错误我的应用程序目标。
它在 Xcode 11(构建和上传)上运行良好,我对与构建架构相关的框架进行了一些更改,以使其与 Xcode 12 兼容。
有趣的是,错误页面显示查看分发日志以获取更多信息,但我发现与此问题相关的唯一信息如下,
Library/Developer/Xcode/Archives/2021-06-27/MyApp 27-06-21, 4.26 PM.xcarchive/Products/Applications/MyApp.app/MyApp>', hardenedRuntime='0'>'> to: /var /folders/k6/jqdbxs4x6_d65495_v9127180000gn/T/XcodeDistPipeline.~~~v6vq0l/entitlements~~~a8rUuu 2021-06-27 10:56:59 +0000 运行 /usr/-'-vforce'-'-vforce' --sign' 'A5640AE3DE907C3AC86E500508C5B6A3096D871F' '--entitlements' '/var/folders/k6/jqdbxs4x6_d65495_v9127180000gn/T-line/xcodeldatar ~~~ 'xcodedistu-xcodedist ', '--entitlements 、、、、、、、、、、、]- '/var/folders/k6/jqdbxs4x6_d65495_v9127180000gn/T/XcodeDistPipeline.~~~v6vq0l/Root/Payload/MyApp.app' 2021-06-27 10:57:00 +0000/6/5495_v912718000gn/T/XcodeDistPipeline.~~~v6vq0l/Root/Payload/MyApp.app XcodeDistPipeline.~~~v6vq0l/Root/Payload/MyApp.app:代码签名子系统中的内部错误 2021-06-27 10:57:00 +0000 /usr/bin/codesign 以 1 退出
收到此“错误:文件夹 \xe2\x80\x9cdSYMs\xe2\x80\x9d 不\xe2\x80\x99t 存在。” 安装应用程序以及存档应用程序以创建 ipa 文件。\n特别是 Xcode 12.4。
\n感谢任何帮助。
\n我在装有 macOS Big Sur 11.5.1 (20G80) 的 MacBook Air 上使用 Xcode 12.5 (12E262)。
App Store 表示,Xcode 有新的更新。
尝试开始更新时,我收到一条消息,指出由于磁盘空间不足,无法开始更新。
我可以简单地删除当前版本的 Xcode,然后从 App Store 下载该版本吗?因为这样可以让我有足够的磁盘空间。
或者这会删除首选项或其他内容吗?
[!] The `SampleUITests [Prod]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES`
build setting defined in `Pods/Target Support Files/Pods-Sample-SampleUITests/Pods-Sample-SampleUITests.prod.xcconfig'.
This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
Run Code Online (Sandbox Code Playgroud)
当我尝试创建一个新的 xcode 项目并将 cocoa pod 添加到该项目中时,我收到上述警告。我已经尝试过What's ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES with CocoaPods、Swift 3 和 Xcode 8中提到的解决方案,但对我来说没有任何效果。
xcode12 ×10
ios ×5
swift ×4
swiftui ×3
frameworks ×2
xcode ×2
breakpoints ×1
cocoapods ×1
combine ×1
debugging ×1
objective-c ×1
realm ×1
tabview ×1
widgetkit ×1
xcframework ×1
xcode12.5 ×1