小编ara*_*ker的帖子

不符合协议可解码/可编码

我正在使用以下结构:

struct Item : Codable {

    var category:String
    var birthDate:Date
    var switch:Bool
    var weightNew: [Weight]
    var weightOld: Array<Double>
    var createdAt:Date
    var itemIdentifier:UUID
    var completed:Bool

    func saveItem() {
        DataManager.save(self, with: itemIdentifier.uuidString)
    }

    func deleteItem() { DataManager.delete(itemIdentifier.uuidString)
    }

    mutating func markAsCompleted() {
        self.completed = true
        DataManager.save(self, with: itemIdentifier.uuidString)
    }

}
Run Code Online (Sandbox Code Playgroud)

而对于重量:

struct Weight {
    var day:Int
    var weight:Double
    var type:Bool
}
Run Code Online (Sandbox Code Playgroud)

将weightOld改为weightNew后,我得到两个错误: - Type'Item'不符合协议'Decodable' - Type'Item'不符合协议'Codable'

如果我遗漏'var weightNew:[Weight]'就可以了.不知道发生了什么以及如何解决它...帮助表示赞赏.

swift swift4

15
推荐指数
1
解决办法
7460
查看次数

增加 SwiftUI 中标签栏项目图标的大小

有没有办法增加标签栏项目图标的大小?
.frame(width: 40, height: 40)没有帮助。

Settings()
    .tabItem {
        VStack {
            Image(systemName: "archivebox")
        }
    }
    .tag(1)
Run Code Online (Sandbox Code Playgroud)

xcode uitabbar ios swift swiftui

14
推荐指数
3
解决办法
7237
查看次数

无法在不可变值上使用可变 getter:“self”是不可变错误

我正在尝试重用一段较旧的 Swift 代码,但收到错误“无法在不可变值上使用 mutating getter: 'self' 是不可变错误”。Xcode 想要在 func 之前添加“mutating”,并提供通过“修复”来做到这一点。所以错误消失了,但仍然保留在“文本”语句中。

import SwiftUI

struct ContentView: View {

     typealias PointTuple = (day: Double, mW: Double)
    let points: [PointTuple] = [(0.0, 31.98), (1.0, 31.89), (2.0, 31.77), (4.0, 31.58), (6.0, 31.46)]

    lazy var meanDays = points.reduce(0) { $0 + $1.0 } / Double(points.count)
    lazy var meanMW   = points.reduce(0) { $0 + $1.1 } / Double(points.count)

    lazy var a = points.reduce(0) { $0 + ($1.day - meanDays) * ($1.mW - meanMW) }
    lazy var b …
Run Code Online (Sandbox Code Playgroud)

getter getter-setter swift computed-properties swiftui

13
推荐指数
2
解决办法
8884
查看次数

Xcode 9.3中的警告

当我在模拟器中运行我的应用程序时,我在Xcode中收到此警告.我该怎么做才能摆脱它?

objc[6529]: Class VCWeakObjectHolder is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AVConference.framework/Frameworks/ViceroyTrace.framework/ViceroyTrace (0x13490b4d0) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AVConference.framework/AVConference (0x133a37e38). One of the two will be used. Which one is undefined.
Run Code Online (Sandbox Code Playgroud)

在Internet上找不到'Class VCWeakObjectHolder'的单一引用.这让我疯了......虽然这只是一个警告.

更新:Xcode 9.3.1和Xcode 9.4 beta都给出了相同的警告.

在此输入图像描述

swift swift4.1

8
推荐指数
1
解决办法
1101
查看次数

无法使用 DatePicker 推断出错误通用参数“ID”

我在具有以下代码的视图中有几个 DatePicker。每个 DatePicker 显示一个数字,因此“3”或“5”。因此,对于“3456”,我有 4 个可以单独更改的 DatePicker。

struct DigitPicker: View {

    var digitName: String
    @Binding var digit: Int

    var body: some View {
        VStack {
            Picker(selection: $digit, label: Text(digitName)) {
                ForEach(0 ... 9) {
                    Text("\($0)").tag($0)
                }
            }.frame(width: 60, height: 110).clipped()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到错误消息“无法推断通用参数‘ID’”。所以我猜原因是 $digit 必须符合 Identifiable()。但是我该怎么做???

swiftui

8
推荐指数
1
解决办法
1602
查看次数

线性回归 - 加速Swift中的框架

我在Stackoverflow的第一个问题...希望我的问题足够具体.

我在Swift中有一个数组,在某些日期有测量值.喜欢:

var myArray:[(day: Int, mW: Double)] = []
myArray.append(day:0, mW: 31.98)
myArray.append(day:1, mW: 31.89)
myArray.append(day:2, mW: 31.77)
myArray.append(day:4, mW: 31.58)
myArray.append(day:6, mW: 31.46)
Run Code Online (Sandbox Code Playgroud)

有些日子不见了,我只是没有进行测量......所有测量都应该在一条线上,或多或少.所以我想到了线性回归.我找到了Accelerate框架,但缺少文档,我找不到示例.

对于缺失的测量,我希望有一个功能,输入缺失的一天,输出最佳猜测,基于其他测量.

func bG(day: Int) -> Double {
    return // return best guess for measurement
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.一月

accelerate-framework swift

7
推荐指数
1
解决办法
2370
查看次数

在Swift 4中向数组添加过滤器

我有一个结构,这是我的数据模型:

import Foundation

struct Item : Codable {

var cat:String
var name:String
var createdAt:Date
// more 
var itemIdentifier:UUID
var completed:Bool

func saveItem() {
    DataManager.save(self, with: itemIdentifier.uuidString)
}

func deleteItem() { DataManager.delete(itemIdentifier.uuidString)
}

mutating func markAsCompleted() {
    self.completed = true
    DataManager.save(self, with: itemIdentifier.uuidString)
}
Run Code Online (Sandbox Code Playgroud)

}

然后在我的ViewController中,我有以下代码来加载数据,这些代码进入TableView(按创建日期排序).

func loadData() {
    items = [Item]()
    items = DataManager.loadAll(Item.self).sorted(by: {
        $0.createdAt < $1.createdAt })
    tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)

现在我想添加一个过滤器,以便只有类别进入TableView.例如,只有在猫等于"花园"的地方.

我该如何添加?

swift swift4

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

如何基于另一个row.value更新row.value

我正在使用Eureka表单,用户可以在其中选择日期。当用户选择第一个日期时,我想更新第二行中的第二个日期(在第一天中增加30天)。

        <<< DateRow(){
            $0.value = Date()
            $0.title = "First Date"
            $0.tag = "firstDate"
            .onChange({ (row) in
                << update secondDate = firstDate + 30 days >>
            } )

         <<< DateRow(){
            $0.value = Date()
            $0.title = "Second Date"
            $0.tag = "secondDate"
Run Code Online (Sandbox Code Playgroud)

我该如何实现?

swift eureka-forms swift4

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

更新数组中的对象

我有以下代码:

    struct Person {
    var name: String
    var age: Int
    var check: Bool
}

var anotherPerson: Person
var people: [Person] = []

anotherPerson = Person(name: "Jan", age: 55, check: true)
people.append(anotherPerson)
anotherPerson = Person(name: "Diesel", age: 9, check: false)
people.append(anotherPerson)
anotherPerson = Person(name: "King", age: 3, check: false)
people.append(anotherPerson)
Run Code Online (Sandbox Code Playgroud)

如何将国王的年龄从 3 更新到 4?

swift

0
推荐指数
1
解决办法
5781
查看次数

绑定@ObjectBinding 和@EnvironmentObject

28-07-2019。我仍然对下面的代码有疑问。我想将数据模型从 ContentView 中分离出来。所以我制作了一个单独的文件并添加了类,如下所示:

import SwiftUI
import Combine

class User: BindableObject {
    let willChange = PassthroughSubject<Void, Never>()
    var username : String = "Jan" { willSet { willChange.send() }}
    var password : String = "123456" { willSet { willChange.send() } }
    var emailAddress : String = "jan@mail.nl" { willSet { willChange.send() } }
}

#if DEBUG
struct User_Previews: PreviewProvider {
    static var previews: some View {
        User()
            .environmentObject(User())
    }
}
#endif
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,我收到错误消息:

Protocol type 'Any' cannot conform to 'View' because only concrete …
Run Code Online (Sandbox Code Playgroud)

swiftui

0
推荐指数
1
解决办法
1644
查看次数

如何在Swift中绘制折线图?

对于新的应用程序,我需要绘制线图.该图表需要包含两条参考线,一条线基于每天的测量值(最少14天,最多32天).到目前为止,基于测量的那条线需要是可靠的.从当前日期到最大值,它需要破折.目前,数据是在数组中.

我试图找到示例,还看到了一个名为Core Plot的框架.我非常喜欢Health图的设计.也许Core Plot也可以.

我不希望自己弄清楚细节,而是希望能找到一个人(具有Core Plot经验)来设置一个示例应用程序.所以我有更多的先发制人开发我自己的应用程序.但愿意付出努力.

希望Stackoverflow是这个问题的正确位置.

谢谢.一月

swift

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