我正在使用以下结构:
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]'就可以了.不知道发生了什么以及如何解决它...帮助表示赞赏.
有没有办法增加标签栏项目图标的大小?
.frame(width: 40, height: 40)没有帮助。
Settings()
.tabItem {
VStack {
Image(systemName: "archivebox")
}
}
.tag(1)
Run Code Online (Sandbox Code Playgroud) 我正在尝试重用一段较旧的 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) 当我在模拟器中运行我的应用程序时,我在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都给出了相同的警告.
我在具有以下代码的视图中有几个 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()。但是我该怎么做???
我在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)
谢谢你的帮助.一月
我有一个结构,这是我的数据模型:
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.例如,只有在猫等于"花园"的地方.
我该如何添加?
我正在使用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)
我该如何实现?
我有以下代码:
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?
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) 对于新的应用程序,我需要绘制线图.该图表需要包含两条参考线,一条线基于每天的测量值(最少14天,最多32天).到目前为止,基于测量的那条线需要是可靠的.从当前日期到最大值,它需要破折.目前,数据是在数组中.
我试图找到示例,还看到了一个名为Core Plot的框架.我非常喜欢Health图的设计.也许Core Plot也可以.
我不希望自己弄清楚细节,而是希望能找到一个人(具有Core Plot经验)来设置一个示例应用程序.所以我有更多的先发制人开发我自己的应用程序.但愿意付出努力.
希望Stackoverflow是这个问题的正确位置.
谢谢.一月