Post

Replies

Boosts

Views

Activity

Reply to Charts: customising chartYAxis values
This is absolutely the wrong way to do it - It relies on debug descriptions - but until we find another solution, this will work: .chartYAxis {       AxisMarks() { value in                     AxisGridLine()                     AxisTick()                     AxisValueLabel {                         Text("\(abbreviateAxisValue(string: self.parseAxisValue(value: value) ?? ""))")            }      } } func parseAxisValue(value: AxisValue) -> String? {         let input = String(describing: value)         let regex = /\((\d*.0)|\((0)|\((-\d*.0)/         if let match = input.firstMatch(of: regex) {             return "\(match.1 ?? match.2 ?? match.3 ?? "")"         }         return nil     } func abbreviateAxisValue(string: String) -> String {         let decimal = Decimal(string: string)         if decimal == nil {             return string         } else {             if abs(decimal!) > 1000000000000.0 {                 return "\(decimal! / 1000000000000.0)t"             } else if abs(decimal!) > 1000000000.0 {                 return "\(decimal! / 1000000000.0)b"             } else if abs(decimal!) > 1000000.0 {                 return "\(decimal! / 1000000.0)m"             } else if abs(decimal!) > 1000.0 {                 return "\(decimal! / 1000.0)k"             } else {                 return "\(decimal!)"             }         } }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Jun ’22
Reply to Macbook too old.
What I used to do when I was in your situation was to create a VMware image with a macOS install and Xcode and put it on a large thumbdrive. Then go to a public library with Macs and run the virtual machine and code using that. I did that until I could afford a macbook. I can't remember exactly how I got it to run but might be worth researching if u have access to a library or other public facility with newer Macs. not sure if u even need a Mac, maybe just a fast machine. also have a browse of eBay or whatever classified site u have where u live. you can probably pick up an old (but newer Mac than yours) for $50 or even free. though sounds like a **** move from whoever at apple you were talking to.
Jun ’22
Reply to Charts: customising chartYAxis values
just tried. using .stride works. have to calculate your own values but probably a better solution than parsing debug descriptions. would be nice if we could vary stride values for different ranges eg. below 0 and above 0 but I suppose that's a different problem.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Jun ’22
Reply to Charts: customising chartYAxis values
a .stride solution based on Olivers suggestion: func myChart() -> some View {         var yAxisMaxValue = 23532 //get the min and max values from your data         var yAxisMinValue = -7633 //get the min and max values from your data         let roundedYAxisMaxValue = roundUp(yAxisMaxValue, to: 2)         let roundedYAxisMinValue = roundUp(yAxisMinValue, to: 2)         let strideValue = max(abs(roundedYAxisMaxValue), abs(roundedYAxisMinValue)) / 3.0 //max 3 axis marks above and max 3 below zero return Chart { //your chart layout code } .chartYAxis {             AxisMarks(values: .stride(by: strideValue)) {                 let value = $0.as(Double.self)!                 AxisGridLine()                 AxisTick()                 AxisValueLabel {                     Text("\(self.abbreviateAxisValue(string: "\(value)"))")                 }             }         } } func abbreviateAxisValue(string: String) -> String {         let decimal = Decimal(string: string)         if decimal == nil {             return string         } else {             if abs(decimal!) > 1000000000000.0 {                 return "\(decimal! / 1000000000000.0)t"             } else if abs(decimal!) > 1000000000.0 {                 return "\(decimal! / 1000000000.0)b"             } else if abs(decimal!) > 1000000.0 {                 return "\(decimal! / 1000000.0)m"             } else if abs(decimal!) > 1000.0 {                 return "\(decimal! / 1000.0)k"             } else {                 return "\(decimal!)"             }         } } //round up to x significant digits func roundUp(_ num: Double, to places: Int) -> Double {         let p = log10(abs(num))         let f = pow(10, p.rounded(.up) - Double(places) + 1)         let rnum = (num / f).rounded(.up) * f         return rnum     }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Jun ’22
Reply to App Intent not Discoverable by Siri
just say "Show me my books". don't need your app name. Also it seems you don't need the AppShortcutsProvider. I was able to get it working with just the AppIntent struct struct ShowMeMyBooks: AppIntent {     static var title: LocalizedStringResource = "Show me my books"     @MainActor     func perform() async throws -> some IntentResult {         return .result(dialog: "These are your books")     }     static var openAppWhenRun: Bool = false } note: it seems the sample code in the WWDC session is wrong. its right in the video but not in the attached code.
Topic: App & System Services SubTopic: General Tags:
Jul ’22
Reply to iPhone is busy: Making Apple Watch ready for development
have to keep my Apple Watch turned off. its basically off all the time now. I think ill sell it.
Replies
Boosts
Views
Activity
Dec ’21
Reply to Xcode error: Abort Trap 6
got the same in Xcode 13.2.1 with swiftui I have 3 nested ForEach's. Had to break them up into separate functions for each nested ForEach level
Topic: Programming Languages SubTopic: Swift Tags:
Replies
Boosts
Views
Activity
Jan ’22
Reply to CloudKit iOS 10 Error: Account doesn't have access to CloudKit account
happens in iOS15.2. still an issue. have to re-login to iCloud and then restart device to get CoreData-CloudKit syncing to resume. Seems iCloud kicks you out with large sync volumes and then locks up.
Replies
Boosts
Views
Activity
Jan ’22
Reply to NSPersistentCloudKitContainer - Import failed because applying the accumulated changes hit an unhandled exception
its not just images. I have a database that has no images and this happens. it does have a decent amount of records though - 100MB or so says the manage storage section of iCloud in the Settings app. iOS15.4.1
Replies
Boosts
Views
Activity
Apr ’22
Reply to NSPersistentCloudKitContainer - Import failed because applying the accumulated changes hit an unhandled exception
iOS 15.5 still broken
Replies
Boosts
Views
Activity
May ’22
Reply to Charts: customising chartYAxis values
This is absolutely the wrong way to do it - It relies on debug descriptions - but until we find another solution, this will work: .chartYAxis {       AxisMarks() { value in                     AxisGridLine()                     AxisTick()                     AxisValueLabel {                         Text("\(abbreviateAxisValue(string: self.parseAxisValue(value: value) ?? ""))")            }      } } func parseAxisValue(value: AxisValue) -> String? {         let input = String(describing: value)         let regex = /\((\d*.0)|\((0)|\((-\d*.0)/         if let match = input.firstMatch(of: regex) {             return "\(match.1 ?? match.2 ?? match.3 ?? "")"         }         return nil     } func abbreviateAxisValue(string: String) -> String {         let decimal = Decimal(string: string)         if decimal == nil {             return string         } else {             if abs(decimal!) > 1000000000000.0 {                 return "\(decimal! / 1000000000000.0)t"             } else if abs(decimal!) > 1000000000.0 {                 return "\(decimal! / 1000000000.0)b"             } else if abs(decimal!) > 1000000.0 {                 return "\(decimal! / 1000000.0)m"             } else if abs(decimal!) > 1000.0 {                 return "\(decimal! / 1000.0)k"             } else {                 return "\(decimal!)"             }         } }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’22
Reply to Axis with fixed domain range without rounding
also get this, submitted a report: FB10145913
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’22
Reply to Is it possible to disable Core Animation in SwiftUI?
use this modifier on the view. .transaction { transaction in transaction.animation = nil } note that its stopped working in ios16b1. not sure if that's a bug or it was intentional.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’22
Reply to Macbook too old.
What I used to do when I was in your situation was to create a VMware image with a macOS install and Xcode and put it on a large thumbdrive. Then go to a public library with Macs and run the virtual machine and code using that. I did that until I could afford a macbook. I can't remember exactly how I got it to run but might be worth researching if u have access to a library or other public facility with newer Macs. not sure if u even need a Mac, maybe just a fast machine. also have a browse of eBay or whatever classified site u have where u live. you can probably pick up an old (but newer Mac than yours) for $50 or even free. though sounds like a **** move from whoever at apple you were talking to.
Replies
Boosts
Views
Activity
Jun ’22
Reply to NSPersistentCloudkitContainer Memory Leak -> Crash? (iOS 15 beta 4 & 5)
broken again in ios16b1. doesn't crash but same error message and doesn't sync
Replies
Boosts
Views
Activity
Jun ’22
Reply to Loading large number of records into the CloudKit public database
done - FB10392936 (Unable to load large number of records into the CloudKit public database.) probably not the best articulation for a bug report but I've attached code and schema. let me know if u need anything specific.
Replies
Boosts
Views
Activity
Jun ’22
Reply to Charts: customising chartYAxis values
just tried. using .stride works. have to calculate your own values but probably a better solution than parsing debug descriptions. would be nice if we could vary stride values for different ranges eg. below 0 and above 0 but I suppose that's a different problem.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’22
Reply to Charts: customising chartYAxis values
a .stride solution based on Olivers suggestion: func myChart() -> some View {         var yAxisMaxValue = 23532 //get the min and max values from your data         var yAxisMinValue = -7633 //get the min and max values from your data         let roundedYAxisMaxValue = roundUp(yAxisMaxValue, to: 2)         let roundedYAxisMinValue = roundUp(yAxisMinValue, to: 2)         let strideValue = max(abs(roundedYAxisMaxValue), abs(roundedYAxisMinValue)) / 3.0 //max 3 axis marks above and max 3 below zero return Chart { //your chart layout code } .chartYAxis {             AxisMarks(values: .stride(by: strideValue)) {                 let value = $0.as(Double.self)!                 AxisGridLine()                 AxisTick()                 AxisValueLabel {                     Text("\(self.abbreviateAxisValue(string: "\(value)"))")                 }             }         } } func abbreviateAxisValue(string: String) -> String {         let decimal = Decimal(string: string)         if decimal == nil {             return string         } else {             if abs(decimal!) > 1000000000000.0 {                 return "\(decimal! / 1000000000000.0)t"             } else if abs(decimal!) > 1000000000.0 {                 return "\(decimal! / 1000000000.0)b"             } else if abs(decimal!) > 1000000.0 {                 return "\(decimal! / 1000000.0)m"             } else if abs(decimal!) > 1000.0 {                 return "\(decimal! / 1000.0)k"             } else {                 return "\(decimal!)"             }         } } //round up to x significant digits func roundUp(_ num: Double, to places: Int) -> Double {         let p = log10(abs(num))         let f = pow(10, p.rounded(.up) - Double(places) + 1)         let rnum = (num / f).rounded(.up) * f         return rnum     }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’22
Reply to NavigationStack with NavigationLink - back button only works correctly one deep
still an issue in ios16b3
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jul ’22
Reply to App Intent not Discoverable by Siri
just say "Show me my books". don't need your app name. Also it seems you don't need the AppShortcutsProvider. I was able to get it working with just the AppIntent struct struct ShowMeMyBooks: AppIntent {     static var title: LocalizedStringResource = "Show me my books"     @MainActor     func perform() async throws -> some IntentResult {         return .result(dialog: "These are your books")     }     static var openAppWhenRun: Bool = false } note: it seems the sample code in the WWDC session is wrong. its right in the video but not in the attached code.
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jul ’22