小编foo*_*ear的帖子

存档错误:“xxx-master.dia:1:1:无法读取序列化诊断文件:无法加载文件:无法打开诊断文件”

我昨天将我的 xcode 升级到 11.4,现在我无法存档我的 SwiftUI 代码以提交 appstore,因为错误:“错误:分段错误:11”,“xxx-master.dia:1:1:无法读取序列化诊断文件:无法加载文件:无法打开诊断文件”。

有什么建议吗?

xcode archive swiftui

17
推荐指数
1
解决办法
7270
查看次数

我在 SwiftUI 中使用 UIViewRepresentable 包装 UITextfield,但我无法设置宽度

更新:我找到了答案并解决了这个问题:(仅供参考:SwiftUI - UITextField 中的状态更改导致 frameWidth 不受控制地增长并忽略 bounds/frame

func makeUIView(context: UIViewRepresentableContext<MyField>) -> UITextField {
    let field = UITextField(frame: .zero)
    field.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
Run Code Online (Sandbox Code Playgroud)

当我在其中输入越来越多的文本时,即使设置了框架宽度,文本字段也会变得越来越宽。

public struct FoolTextField: UIViewRepresentable {
    @Binding var text: String
    private let textField = UITextField(frame: .zero)

    public init(_ placeholder: String, text: Binding<String>) {
        _text = text
        textField.text = text.wrappedValue
        textField.placeholder = placeholder
        textField.borderStyle = .none
        textField.clearButtonMode = .whileEditing
        textField.returnKeyType = .done
    }
    ...
}


FoolTextField("placeholder", text: $text).frame(width: 200)
Run Code Online (Sandbox Code Playgroud)

textfield swiftui

8
推荐指数
0
解决办法
1269
查看次数

cloudkit+coredata同步停止了,如何恢复同步?

我的应用程序使用cloudkit+coredata,同步工作正常,但我发现最近的项目有一天没有出现在另一部iPhone上,我认为同步停止了。所以我添加一些调试信息并发生错误:

21-12-10 16:13:58.089 CKDBManager[128], processCloudkitEventChanged( :)[c]: 事件(设置)开始 21-12-10 16:13:58.301 CKDBManager[133], processCloudkitEventChanged( :)[c] :事件(设置)在 0.21 秒内成功完成 21-12-10 16:14:01.218 CKDBManager[128],processCloudkitEventChanged( :) [c]:事件(设置)开始 21-12-10 16:14:01.280 CKDBManager [133],processCloudkitEventChanged( :)[c]:事件(设置)在 0.06 秒内成功完成 21-12-10 16:14:01.286 CKDBManager[128],processCloudkitEventChanged(:) [c]:事件(导入)开始21-12-10 16:14:02.372 CKDBManager[133], processCloudkitEventChanged( :)[c]: 事件(导入)在 1.09 秒内成功完成 21-12-10 16:14:02.378 CKDBManager[128], processCloudkitEventChanged( :)[c]: 事件(导出)于 21-12-10 16:14:02.388 CKDBManager[133], processCloudkitEventChanged( :)[c]: 事件(导出)在 0.01 秒内成功完成 21-12-10 16 :14:12.741 CKDBManager[128], processCloudkitEventChanged( :)[c]: 事件(导出)开始 21-12-10 16:14:12.756 CKDBManager[133], processCloudkitEventChanged( : )[c]: 事件(导出)完成在 0.02 秒内成功 21-12-10 16:14:12.762 CKDBManager[128], processCloudkitEventChanged( :)[c]: 事件(导入)开始 21-12-10 16:14:13.169 CKDBManager[131], processCloudkitEventChanged( :)[c]:事件(导入)错误:错误域=CKErrorDomain代码=12“(空)” …

core-data swift cloudkit

6
推荐指数
0
解决办法
423
查看次数

在 SwiftUI 中从 coredata 中删除记录时崩溃

我从 coredata 中列出了音频项目。删除后,崩溃报告为“EXC_BREAKPOINT (code=1, subcode=0x1b8fb693c)”,为什么?

使用时

ForEach(items, id: \.self)
Run Code Online (Sandbox Code Playgroud)

, 有用。但我的音频具有 id 属性并遵循可识别协议。

更新:我发现添加 if{} 子句可以修复崩溃,但为什么呢?断点在“静态 UUID。unconditionallyBridgeFromObjectiveC ( :) ()”。

struct Test1View: View {
    @Environment(\.managedObjectContext) var context
    @FetchRequest(fetchRequest: Audio.fetchAllAudios()) var items: FetchedResults<Audio>
    var body: some View {
        List {
            ForEach(items) { item in
                if true { // <- this if clause fix crash, but why?
                    HStack {
                        Text("\(item.name)")
                    }
                }
            }.onDelete(perform: { indexSet in
                let index = indexSet.first!
                let item = self.items[index]
                self.context.delete(item)
                try? self.context.save()
            })
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

代码如下: …

core-data swiftui

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

swiftui,动画应用于父效果子动画

RectangleView有滑动动画,他的子TextView有旋转动画。我想当 Go! 时, RectangleView 及其子组件(TextView)作为一个整体滑入屏幕(easeInOut)!按下,并且 TextView 永远旋转(线性)。但实际上,子 TextView 与父级分离,旋转(线性)和滑动(线性),并且永远重复。

为什么动画应用到父级效果子级动画?

struct AnimationTestView: View {
    @State private var go = false
    var body: some View {
        VStack {
            Button("Go!") {
                go.toggle()
            }
            if go {
                RectangleView()
                    .transition(.slide)
                    .animation(.easeInOut)
            }
        }.navigationTitle("Animation Test")
    }
}

struct RectangleView: View {
    var body: some View {
        Rectangle()
            .frame(width: 100, height: 100)
            .foregroundColor(.pink)
            .overlay(TextView())
    }
}

struct TextView: View {
    @State private var animationRotating: Bool = false
    let animation = Animation.linear(duration: 3.0).repeatForever(autoreverses: false)
    
    var body: some …
Run Code Online (Sandbox Code Playgroud)

animation swiftui

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

滚动时滚动视图中作为列表项的内容消失 (swiftui),为什么?

@Asperi 的解决方案,ScrollView().id(UUID().uuidString)。

列表项中有一个滚动视图,当我滚动列表时,滚动视图中的内容消失了。

我认为问题是关于滚动视图和列表可重用项目冲突。

如果我删除滚动视图(只是 hstack{}),则任何内容都不会消失。所以我认为这是滚动视图的问题。有什么理想吗?

struct ContentView: View {
    var body: some View {
        List {
            ForEach(0...100, id: \.self) { _ in
                ItemView().padding()
            }
        }
    }
}

struct ItemView: View {
    var body: some View {
        VStack(alignment: .leading) {
            Text("Tag list:")
            ScrollView(.horizontal, showsIndicators: false) {
                HStack {
                    ForEach(0...8, id: \.self) { _ in
                        TagView1()
                    }
                }
            }.id(UUID().uuidString) /// <- fix
        }
    }
}

struct TagView1: View {
    var body: some View {
        Text("Tag\(String(UUID().uuidString.prefix(5)))")
            .foregroundColor(.secondary)
            .padding(.horizontal, 2)
            .background(RoundedRectangle(cornerRadius: 4).stroke(Color.secondary.opacity(0.5)))
            .padding(1) …
Run Code Online (Sandbox Code Playgroud)

scrollview swiftui

3
推荐指数
1
解决办法
1530
查看次数

点击列表项的空白处没有任何反应,为什么?

我只想在点击列表项的任意位置时执行某些操作。

当点击项目的 Text() 时一切正常,但是当我点击项目的空白区域时,什么也没有发生,为什么?

struct ItemView: View {
    var body: some View {
        HStack {
            Text("Hello")
            Spacer()
            Text("world")
        }
    }
}

struct ListView: View {
    var body: some View {
        List() {
            ForEach((1...10).reversed(), id: \.self) { index in
                ItemView().onTapGesture {
                    print("item \(index) taped")
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

-=-=-=
我做了一些实验,它们太奇怪了!!!
如果点击 Text hello,则打印“hello”;
如果点击空白区域,则打印“world”;
如果点击文本世界,则打印点击的“item 0”;

struct ItemView: View {
    var body: some View {
        HStack {
            Text("Hello").onTapGesture {
                print("hello tapped")
            }
            Spacer()
            Button(action: {
                print("world tapped")
            }) {
                Text("world") …
Run Code Online (Sandbox Code Playgroud)

list swiftui

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

得到“致命错误:索引超出范围”:在 swiftui 的列表项中显示索引

更新:错误:类型'_'没有成员'1',如果在list-foreach中放置一个if闭包(if !self.showMarkedOnly || name.marked {}),为什么?

代码版本 4:

struct Name: Identifiable, Hashable {
    var id: String = UUID().uuidString
    var name: String
    var marked: Bool
    init(_ name: String, marked: Bool = false) { self.name = name; self.marked = marked }
}

struct TestView: View {
    @State private var list: [Name] = [Name("test1"), Name("test2"), Name("test3", marked: true), Name("test4"), Name("test5", marked: true), Name("test6"), Name("test7"), Name("test8")]
    @State private var showMarkedOnly = false

    var body: some View {
        VStack{
            Toggle(isOn: $showMarkedOnly) { Text("show marked only") } …
Run Code Online (Sandbox Code Playgroud)

list indices swiftui

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