Ended up using a computed variable as Claude31 suggested.
Worked great!
Post
Replies
Boosts
Views
Activity
So here is all the code
Table(artViewModel.filteredArtPieces, selection: $selection, sortOrder: $sortOrder, columnCustomization: $columnCustomization) {
TableColumn("Image") { artPiece in
if let imageData = artPiece.artImage.first, let image = UIImage(data: imageData!) {
Image(uiImage: image)
.resizable()
.frame(width: 50, height: 50)
} else {
Image(systemName: "photo")
.resizable()
.frame(width: 50, height: 50)
}
}
.customizationID("Image")
TableColumn("Name", value: \.artName)
.customizationID("Name")
TableColumn ("Art ID", value: \.artPieceID) { artPiece in
Text(String(artPiece.artPieceID))
}
.customizationID("Art ID")
TableColumn ("Price", value: \.artPrice) { artPiece in
Text (formatMoneyDouble(artPiece.artPrice))
}
.customizationID("Price")
TableColumn ("Date", value: \.artcreateDate) { artPiece in
Text (artPiece.artcreateDate, style: .date)
}
// .resizable()
.customizationID("Date")
TableColumn("Artist", value: \.artistName)
.customizationID("Artist")
TableColumn("Meduim", value: \.artMedium)
.customizationID("Meduim")
TableColumn("Type", value: \.artType)
.customizationID("Type")
TableColumn("Status", value: \.artStatus)
.customizationID("Status")
TableColumn("Location", value: \.artLocation)
.customizationID("Location")
/* I want to create columns for this variable
var artDefinedFields: [ArtDefinedFields] = []
which is defined in the datasource . */
}
.tableStyle(.inset)
struct ArtDefinedFields: Identifiable, Codable, Hashable {
var id = UUID()
var name: String
var value: String
var isVisible: Bool
}
This is now working as expected with the latest beta of Sequoia
I went back to a July 10 version of my app and put most of the changes into this version, and now it works fine. So, I still don't know what I broke to cause this but I was in the process of migrating my app to swift6. At this point I am fine and will put off the migration to swift6 to the future.
A few more points to add to this issue:
I used another computer which had never been used for testing my app. macOS Sonoma as well as Xcode 15.4 was used. Same issue. To me this suggests I have some in the source or Xcode settings is causing this behavior.
I changed my source to I changed this code to print the SwiftData containers etc.
var sharedModelContainer: ModelContainer = {
let schema = Schema([
ArtPiece.self, Clientele.self, TrackingArt.self, Invoice.self, InvoiceItem.self, AppSettings.self, Pay.self
])
let modelConfiguration = ModelConfiguration(schema: schema,
isStoredInMemoryOnly: false)
do {
let container = try ModelContainer(for: schema, configurations: [modelConfiguration])
// Add print statements here
print("ModelContainer:", container)
print("Configurations:", container.configurations)
print("Schema:", container.schema)
return container
} catch {
fatalError("Could not create ModelContainer: \(error)")
}
}()
I see this line on the Xcode Debug Console
url: file:///Users/bobsoule/Library/Containers/B43D6A46-213E-427E-ACE5-B7EE77071C0C/Data/Library/Application%20Support/default.store
However I don't see this folder B43D6A46-213E-427E-ACE5-B7EE77071C0C in /Users/bobsoule/Library/Containers
I have the issue on Xcode15 as well as Xcode 16 beta
I have attached the Debug Console Log from this test.
I am able to create and populate with data three of the tables before this issue arrises.
debugConsole.txt
At this point I have a couple of questions. First one is regarding your first response. Were you saying some how swiftdata know I change one of the table models and I need to do a migration?
Secondly, I wanted to be able to to a clean build and have the app run as if it was the very first run, so I am thinking I need to delete any and all swiftdata persistent data. For now I am not using cloudkit. So, what you described in your second answer is how to do this?
So, I am trying to find the cause and a resolution for the tables being dropped
Thanks
Is there a way to start complete fresh? I have made some changes to one of the tables but I don't want to save any data so I can start like this is the first time I am running the app? I tried a couple of actions like removing the scheme and deleting the container from macOS Sonoma but the error persists?
Thanks
It turns out my iCloud Drive was much bigger than I thought so after cleaning up some automated backups to iCloud I was able to get back to expect size for iCloud content.
This is fixed in the Release Candidate code.
Does the same thing on Ventura and Xcode 14
I have my iPad connected to my Mac and I am running the code above on the iPad. I am using my iPad to test because it has more images to test with than a simulator. This code works as expected on my Mac but not on my iPad. The specifics of all the devices are as follows: Mac Sonoma beta 6 Xcode 15 beta7, iPadOS 17 beta 7.
Reducing the frame size makes no difference.
I will test on Ventura with Xcode 14 and iPadOS 16 later today or in the morning to see if this makes a difference.
Thanks for the help!
I get the same results on Ventura and Xcode 14
Yes I add tried the .tint modifier as well with no success. BTW I am using Xcode 15 beta 7, I think I will give a try with my Ventura Xcode 14 to see if that makes a difference.
I found these three files which are part of core-data datastore as well as swiftdata
144 -rw-r--r--@ 1 bsoule staff 73728 Jul 29 10:10 default.store
64 -rw-r--r--@ 1 bsoule staff 32768 Aug 7 14:57 default.store-shm
1160 -rw-r--r--@ 1 bsoule staff 564472 Aug 7 14:56 default.store-wal
in my library directory --> Library/Containers/CHCS.ArtManager/Data/Library/Application Support
I expected to also see a file with an sqlite extension but I did not? Any ideas where the sqlite database is stored?
Here is the link for the projects.
[https://developer.apple.com/documentation/SwiftUI/Building-a-document-based-app-using-SwiftData)