Post

Replies

Boosts

Views

Activity

'self' used before all stored properties are initialized and I have not idea why
No idea why this error occurred, and I suspect that it's me putting initialization in the wrong place. struct TodosDocument: FileDocument { var todo: Context @AppStorage("defaultText") var defaultText: String = defaultContent var content: String var erroreousFileContent: Bool = false init(content: String = defaultContent, defaultText: String = defaultContent) { self.defaultText = defaultText self.content = content do { self.todo = try JSONDecoder().decode(Context.self, from: content.data(using: .utf8)!) } catch { print("ERROR \(error)") fatalError() } } static var readableContentTypes: [UTType] { [.TodoType] } init(configuration: ReadConfiguration) throws { guard let data = configuration.file.regularFileContents, let string = String(data: data, encoding: .utf8) else { throw CocoaError(.fileReadCorruptFile) } self.content = string do { self.todo = try JSONDecoder().decode(Context.self, from: data) } catch { self.todo = try JSONDecoder().decode(Context.self, from: defaultText.data(using: .utf8)!) // <- here } } func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper { let data = content.data(using: .utf8)! let i = JSONEncoder() i.outputFormatting = .prettyPrinted let content = Context(title: todo.title, items: todo.items) do { let dat = try i.encode(content) return .init(regularFileWithContents: dat) } catch { fatalError("Cannot write content \"\(data)\" with \(configuration): \(error)") } } }
3
0
1.2k
May ’22
"Access to list denied" message in the run console
What I want: I'm learning developing by building a document-based todos app and just want my code to run. What I get: My app went stuck every time I open a document So I create a new project and moved all of my code there Nothing changes I think that's because I added Touch Bar support so I clear Touch Bar code off Still nothing changes, but in the LLDB console there's a message: 2022-06-06 09:17:14.098990+0800 Todos[5747:307926] [default] Failed to get state for list identifier com.apple.LSSharedFileList.ApplicationRecentDocuments Error: Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted" (Access to list denied) UserInfo={NSDebugDescription=Access to list denied} And I think there's sth to do with App Sandbox, and I added some File Access configuration. Nothing changes Then I realized I forgot to add a development team in the new project Nothing ALSO1: when I changed the Signing Certificate to Development The message in the LLDB console disappeared. I couldn't find any reference on it. ANY HELP IS GREATLY APPRECIATED!!!!!!
2
0
1.7k
Jun ’22
Sth about WWDC
I remembered there's a message that says that you cannot modify this video or whatever at the end of every session. So, if I trim the video and send it to my friend, is it allowed? Bonus: where can I find the background music for every daily debrief video (if I can)?
2
0
511
Jun ’22
Really easy question
I know this is really easy I want to get the absolute path for the current app And I can achieve using String(reflecting: Bundle.main.bundleURL) But what outputs isn't like /User/xxx/..... but file:///User/xx/... so what can I do to get a absolute path in /xxx/xxx/xxx format? thanks
1
0
319
Jun ’22
Virtualization
I know how to use Virtualization now But I don't know how to write interface in AppKit So I should find a way to embed a NSView(the VM's UI) in a SwiftUI View However I couldn't find any reference on how except NSViewRepresentable which, of course, will not work I know there must be a easy way to do this But I'm just can't find it... any help is appreciated
1
0
844
Jun ’22
Why isn't my "Add button" not working?
I'm trying out Swift Charts and I'm pretty messed up After I deleted all of my items, I couldn't add items anymore import SwiftUI extension Array where Element == ChartsData {     mutating func delete(_ item: ChartsData) {         self.removeAll {             $0 == item         }     } } struct ContentView: View {     var ofType: ChartsType     @State var data: [ChartsData] = []     var body: some View {         List {             VStack {                 HStack {                     Spacer() // MARK - add button                     Button {                         data.append(ChartsData(item: "item"))                     } label: {                         Image(systemName: "plus").imageScale(.large)                     }.buttonStyle(.plain).padding()                 }                                  List {                     ForEach(data) { datum in                         TableRow(data: datum).swipeActions {                             Button(role: .destructive) {                                 data.delete(datum)                             } label: {                                 Label("Delete", systemImage: "trash")                             }                         }                     }                 }                 NavigationLink{                     ChartsView(ofType: .BarChart, data: data)                 } label: {                     Text("Generate").font(.largeTitle).foregroundStyle(.linearGradient(colors: [.orange, .yellow, .blue, .purple], startPoint: .topTrailing, endPoint: .bottomLeading))                 }.padding()             }         }     } } struct ContentView_Previews: PreviewProvider {     static var previews: some View {         ContentView(ofType: .BarChart, data: [             ChartsData(item: "testItem1", value: 10),             ChartsData(item: "testItem2", value: 20)         ])     } }
1
0
585
Jun ’22
WeatherKit and SwiftUI
I'm trying out weather kit and I'm using swiftUI I have a view that accepts a CurrentWeather type value in initailizer I cannot find a way to initialize a CurrentWeather How can I preview It? This won't work: // forecaster and forecast is defined by me struct WeatherView_Previews: PreviewProvider {     static var previews: some View { // <- static WeatherView(weather: await forecaster.forcast(latitude: 0, longtitude: 0)) // <- concurrency     } }
1
0
1k
Jun ’22
@AppStorage
I have a structure TodoItem struct TodoItem: Codable, Hashable, Identifiable {     var id: UUID = UUID()     var item: String     var done: Bool = false } How can I use AppStorage on [TodoItem]?
1
0
1.3k
Jul ’22