41554 blogs · [ { "id": "01a0821a-604c-72f1-aea5-fb0c23a144c9", "title": "How I Learned to Copy and Paste, and Why I Never Do", "url": "https://www.andrewcbancroft.com/blog/ai/how-i-learned-to-copy-and-paste/", "published_at": "2026-07-22T14:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c242a30c9", "title": "Download macOS Beta Installer", "url": "https://www.andrewcbancroft.com/blog/musings/download-macos-beta-installer/", "published_at": "2024-06-16T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c25056053", "title": "SwiftUI Fundamentals", "url": "https://www.andrewcbancroft.com/pluralsight/2024-04-08-swiftui-fundamentals/", "published_at": "2024-04-08T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c25c3ecf2", "title": "iOS 17 Fundamentals", "url": "https://www.andrewcbancroft.com/pluralsight/2023-12-10-ios-17-fundamentals/", "published_at": "2023-12-10T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c262ec2c2", "title": "Pre-populate a SwiftData Persistent Store", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/pre-populate-swiftdata-persistent-store/", "published_at": "2023-06-15T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c268b6b0a", "title": "Add SwiftData to an Existing App", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/add-swift-data-to-existing-app/", "published_at": "2023-06-08T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c274d0ba9", "title": "Building iOS User Interfaces with SwiftUI", "url": "https://www.andrewcbancroft.com/pluralsight/2021-08-22-building-ios-user-interfaces-swiftui/", "published_at": "2021-08-22T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c27f22f0f", "title": "Swift Five - Week of February 14, 2021", "url": "https://www.andrewcbancroft.com/blog/ios-development/swift-five/swift-five-2021-02-14/", "published_at": "2021-02-14T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c28e3ff2f", "title": "How to Download Old Versions of Xcode", "url": "https://www.andrewcbancroft.com/blog/ios-development/xcode/how-to-download-old-versions-of-xcode/", "published_at": "2020-12-09T04:21:19+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c29372d2d", "title": "iOS 14 Getting Started", "url": "https://www.andrewcbancroft.com/pluralsight/2020-12-04-ios-14-getting-started/", "published_at": "2020-12-04T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c29c118e1", "title": "What Are All of the Possible Environment Keys in SwiftUI?", "url": "https://www.andrewcbancroft.com/blog/ios-development/ui-work/swiftui-what-environment-keys-possible/", "published_at": "2020-09-08T05:11:48+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c29da27dd", "title": "WWDC - The Worldwide Developer Community", "url": "https://www.andrewcbancroft.com/blog/musings/wwdc-worldwide-developer-community/", "published_at": "2020-06-29T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2a63a7be", "title": "StoreKit Testing Swift Start", "url": "https://www.andrewcbancroft.com/blog/ios-development/iap/storekit-testing-swift-start/", "published_at": "2020-06-25T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2b4a7525", "title": "Implementing In-App Purchases on iOS", "url": "https://www.andrewcbancroft.com/pluralsight/2020-06-15-implementing-in-app-purchases-on-ios/", "published_at": "2020-06-09T10:03:33+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2bcd5bfb", "title": "iOS Receipt Validation: Understanding and Troubleshooting the Original App Version Field", "url": "https://www.andrewcbancroft.com/blog/ios-development/iap/ios-receipt-validation-understanding-troubleshooting-original-app-version-field/", "published_at": "2020-02-05T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2c71ac5f", "title": "Privacy Policy", "url": "https://www.andrewcbancroft.com/privacy/privacy-policy/", "published_at": "2020-01-27T07:53:49+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2d31dc7a", "title": "4 Reasons Your iOS App Is Crashing", "url": "https://www.andrewcbancroft.com/blog/ios-development/debugging/reasons-your-ios-app-is-crashing/", "published_at": "2020-01-25T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2d9817e2", "title": "4 Things You Should Never Do When Debugging iOS Apps", "url": "https://www.andrewcbancroft.com/blog/ios-development/debugging/4-things-never-do-when-debugging-ios-apps/", "published_at": "2020-01-16T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2daad72a", "title": "What Is Debugging (And What Isn't)?", "url": "https://www.andrewcbancroft.com/blog/ios-development/debugging/what-is-debugging/", "published_at": "2019-12-30T03:11:48+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2dd9a6cb", "title": "iOS Debugging Fundamentals", "url": "https://www.andrewcbancroft.com/pluralsight/2019-12-26-ios-debugging-fundamentals/", "published_at": "2019-12-26T10:03:33+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2e2997f5", "title": "How to Use @FetchRequest in SwiftUI", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/how-to-use-fetchrequest-swiftui/", "published_at": "2019-08-03T03:11:48+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2e747eeb", "title": "How to Pass NSManagedObjectContext to a SwiftUI View", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/passing-nsmanagedobjectcontext-to-swiftui-view/", "published_at": "2019-08-02T03:11:48+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2f351e1a", "title": "Using Core Data With SwiftUI - An Introduction", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/using-core-data-with-swiftui-introduction/", "published_at": "2019-07-31T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2f87b93a", "title": "NSPersistentCloudKitContainer Buggy Behavior List", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/nspersistentcloudkitcontainer-buggy-behavior-list/", "published_at": "2019-07-11T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c2fde3250", "title": "Apple's SwiftUI Essentials Tutorial Series as Playgrounds", "url": "https://www.andrewcbancroft.com/blog/ios-development/ui-work/swiftui-essentials-playgrounds/", "published_at": "2019-07-06T03:11:48+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c30105254", "title": "Why is Swift ABI Stability a Big Deal?", "url": "https://www.andrewcbancroft.com/blog/ios-development/swift-language-notes/why-is-abi-stability-a-big-deal/", "published_at": "2019-06-21T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c31014673", "title": "Make a Bash Script Executable", "url": "https://www.andrewcbancroft.com/blog/musings/make-bash-script-executable/", "published_at": "2019-06-21T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c31c168ed", "title": "What is an ABI", "url": "https://www.andrewcbancroft.com/blog/ios-development/swift-language-notes/what-is-an-abi/", "published_at": "2019-06-20T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c326040b5", "title": "How Smart (Or Dumb?) Should NSManagedObjects Be?", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/how-smart-dumb-should-nsmanagedobjects-be/", "published_at": "2019-06-19T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c33050506", "title": "On Core Data Object Fetching and Display Strategies", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/on-core-data-object-fetching-and-display-strategies/", "published_at": "2019-06-14T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3388bda8", "title": "Using SwiftUI in a Playground", "url": "https://www.andrewcbancroft.com/blog/ios-development/ui-work/using-swiftui-in-playground/", "published_at": "2019-06-13T04:00:18+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c33c476fc", "title": "Getting Started With NSPersistentCloudKitContainer", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/getting-started-with-nspersistentcloudkitcontainer/", "published_at": "2019-06-11T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c340adb45", "title": "Accessing the Root View Controller at Launch on iOS 13 with SceneDelegate", "url": "https://www.andrewcbancroft.com/blog/ios-development/ui-work/accessing-root-view-controller-ios13-scenedelegate/", "published_at": "2019-06-07T18:20:41+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c34d54987", "title": "New Delights With Xcode 11", "url": "https://www.andrewcbancroft.com/blog/ios-development/xcode/new-delights-with-xcode-11/", "published_at": "2019-06-07T04:21:19+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c35873907", "title": "Resolving Failed to Load Model Named... with Core Data", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/resolving-core-data-failed-to-load-model-named/", "published_at": "2019-06-06T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c35c73b25", "title": "First Impressions of NSPersistentCloudKitContainer", "url": "https://www.andrewcbancroft.com/blog/ios-development/data-persistence/first-impressions-of-nspersistentcloudkitcontainer/", "published_at": "2019-06-06T04:40:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3656c857", "title": "SwiftUI is Declarative. What Does That Mean?", "url": "https://www.andrewcbancroft.com/blog/ios-development/ui-work/swiftui-what-does-declarative-mean/", "published_at": "2019-06-04T03:11:48+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c36a5f972", "title": "Taking First Steps With SwiftUI", "url": "https://www.andrewcbancroft.com/blog/ios-development/ui-work/taking-first-steps-with-swiftui/", "published_at": "2019-06-03T03:11:48+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c377f9307", "title": "Displaying and Updating Currency in a UILabel", "url": "https://www.andrewcbancroft.com/blog/ios-development/swift-how-tos/displaying-updating-currency-in-uilabel/", "published_at": "2019-06-01T04:31:49+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c37b8a4bc", "title": "Load a CSV File With R", "url": "https://www.andrewcbancroft.com/blog/data/data-engineering-r/load-csv-file-with-r-windows/", "published_at": "2019-05-29T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c382de447", "title": "Showing the Live View in a Swift Playground", "url": "https://www.andrewcbancroft.com/blog/ios-development/xcode/showing-live-view-in-swift-playground/", "published_at": "2019-05-28T05:06:19+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c389ff082", "title": "What is the Difference Between axis=0 and axis=1 When Working with Pandas Dataframes?", "url": "https://www.andrewcbancroft.com/blog/data/data-engineering-python/difference-between-axis-0-axis-1-python-pandas/", "published_at": "2019-05-22T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c38f990e9", "title": "Load an Excel File With Python and Pandas", "url": "https://www.andrewcbancroft.com/blog/data/data-engineering-python/load-excel-file-with-python-pandas/", "published_at": "2019-05-22T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3978a302", "title": "Load a CSV File With Python and Pandas", "url": "https://www.andrewcbancroft.com/blog/data/data-engineering-python/load-csv-file-with-python-pandas/", "published_at": "2019-05-22T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c39d1a0e5", "title": "Cheat Sheet - Jupyter Notebook Keyboard Shortcuts", "url": "https://www.andrewcbancroft.com/blog/data/jupyter-notebooks/cheat-sheet-jupyter-notebook-keyboard-shortcuts/", "published_at": "2019-05-21T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3a250610", "title": "Create a SQL Server Credential for Accessing Azure Blob Storage", "url": "https://www.andrewcbancroft.com/blog/data/sql-server/create-sql-server-credential-access-azure-blob-storage/", "published_at": "2019-05-20T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3a9ca6a6", "title": "A Mnemonic for Remembering Type I vs Type II Errors", "url": "https://www.andrewcbancroft.com/blog/data/statistics/mnemonic-for-remembering-type-i-type-ii-errors/", "published_at": "2019-05-07T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3b109e80", "title": "iOS Data Persistence: The Big Picture", "url": "https://www.andrewcbancroft.com/2019/04/30/ios-data-persistence-the-big-picture/", "published_at": "2019-04-30T10:03:33+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3bbe6ffa", "title": "What is the tilde (~) symbol in R?", "url": "https://www.andrewcbancroft.com/blog/data/r/what-is-tilde-operator-in-r/", "published_at": "2019-04-30T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3cb2bfb3", "title": "Resolving No Events Found When Sampling Data with Azure Stream Analytics", "url": "https://www.andrewcbancroft.com/blog/data/azure/azure-stream-analytics-resolving-sample-no-events-found/", "published_at": "2019-01-04T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3cb8c22d", "title": "Deciphering U-SQL's Error Messages", "url": "https://www.andrewcbancroft.com/blog/data/azure/deciphering-usql-error-messages/", "published_at": "2019-01-03T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3cc86d93", "title": "U-SQL Pickiness - Resolving Common Syntax Errors", "url": "https://www.andrewcbancroft.com/blog/data/azure/u-sql-pickiness-resolving-common-syntax-errors/", "published_at": "2019-01-02T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3d9cc4f2", "title": "CloudKit Fundamentals", "url": "https://www.andrewcbancroft.com/2018/09/24/cloudkit-fundamentals/", "published_at": "2018-09-24T17:58:49+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3dc953c0", "title": "Do Core Data Entities Need Primary Keys?", "url": "https://www.andrewcbancroft.com/2018/08/10/core-data-entities-need-primary-keys/", "published_at": "2018-08-10T22:31:47+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3dcbf0b1", "title": "The Case for CloudKit", "url": "https://www.andrewcbancroft.com/2018/08/06/case-for-cloudkit/", "published_at": "2018-08-06T11:58:32+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3df7c76c", "title": "Create an HDInsight Cluster in Azure with PowerShell", "url": "https://www.andrewcbancroft.com/blog/data/azure/create-hdinsight-cluster-azure-powershell/", "published_at": "2018-07-27T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3dfe598e", "title": "Swift Cheat Sheet for iPhone Location Services Access and Usage", "url": "https://www.andrewcbancroft.com/2018/07/16/swift-cheat-sheet-iphone-location-access-usage/", "published_at": "2018-07-17T00:43:03+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3e668779", "title": "Swift Cheat Sheet for iPhone Camera Access and Usage", "url": "https://www.andrewcbancroft.com/2018/02/24/swift-cheat-sheet-for-iphone-camera-access-usage/", "published_at": "2018-02-24T12:23:02+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3e9c6499", "title": "Winning with Dimensional Models in the Age of Big Data", "url": "https://www.andrewcbancroft.com/blog/data/dimensional-modeling/winning-with-dimensional-models-in-age-of-big-data/", "published_at": "2018-02-21T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3f075ad5", "title": "Predictive Analytics vs Machine Learning - What's the Difference?", "url": "https://www.andrewcbancroft.com/blog/data/machine-learning/predictive-analytics-vs-machine-learning-whats-the-difference/", "published_at": "2018-02-05T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3f381c85", "title": "Work in Progress?", "url": "https://www.andrewcbancroft.com/work-in-progress/", "published_at": "2018-02-01T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c3f7e655b", "title": "Fix SSIS Flat File Destination Error: Cannot open the datafile", "url": "https://www.andrewcbancroft.com/blog/data/sql-server/ssis-flat-file-destination-cannot-open-the-datafile/", "published_at": "2018-02-01T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c40263a59", "title": "Breaking Down Data Analysis vs Data Analytics: A Look at the Suffix", "url": "https://www.andrewcbancroft.com/blog/data/general-data-concepts/data-analysis-vs-data-analytics-examining-suffix/", "published_at": "2018-01-31T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c408c4f86", "title": "Swift 4 Upgrade Error: ‘init(colorLiteralRed:green:blue:alpha:)’ is unavailable", "url": "https://www.andrewcbancroft.com/2018/01/24/swift-4-upgrade-uicolor-init-unavailable/", "published_at": "2018-01-24T12:35:04+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c40bc18ad", "title": "Where is the SQL Server 2017 Reporting Services License Key??", "url": "https://www.andrewcbancroft.com/blog/data/sql-server/where-is-sql-server-2017-reporting-services-product-key/", "published_at": "2018-01-19T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c40bfd78b", "title": "What Types of Data Analysis Are There?", "url": "https://www.andrewcbancroft.com/blog/data/general-data-concepts/what-types-of-data-analysis-are-there/", "published_at": "2018-01-18T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c41633eeb", "title": "Search Database Object Definitions for Text", "url": "https://www.andrewcbancroft.com/blog/data/sql-server/search-object-definitions-for-text/", "published_at": "2018-01-09T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4237a220", "title": "Kill All Sessions", "url": "https://www.andrewcbancroft.com/blog/data/sql-server/kill-all-sessions/", "published_at": "2018-01-09T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c42914ba7", "title": "Get Out of SINGLE_USER Mode", "url": "https://www.andrewcbancroft.com/blog/data/sql-server/get-out-of-single-user-mode/", "published_at": "2018-01-09T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4378ece0", "title": "What is a Dimensional Model?", "url": "https://www.andrewcbancroft.com/blog/data/dimensional-modeling/what-is-a-dimensional-model/", "published_at": "2017-12-26T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c43a129df", "title": "Stages to Machine Learning", "url": "https://www.andrewcbancroft.com/blog/data/machine-learning/stages-to-machine-learning/", "published_at": "2017-12-17T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c43dfd3d7", "title": "Patterns and Key Words of Predictive Analytics Questions", "url": "https://www.andrewcbancroft.com/blog/data/general-data-concepts/patterns-and-key-words-of-predictive-analytics-questions/", "published_at": "2017-12-17T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c44186b67", "title": "What is Data? (Like I'm 5)", "url": "https://www.andrewcbancroft.com/blog/data/general-data-concepts/what-is-data-like-im-five/", "published_at": "2017-12-16T00:00:00+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4515292f", "title": "Local Receipt Validation for iOS in Swift From Start to Finish", "url": "https://www.andrewcbancroft.com/2017/08/01/local-receipt-validation-swift-start-finish/", "published_at": "2017-08-01T17:55:09+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4585f352", "title": "Finalizing Receipt Validation in Swift – Computing a GUID Hash", "url": "https://www.andrewcbancroft.com/2017/07/31/finalizing-receipt-validation-in-swift-computing-a-guid-hash/", "published_at": "2017-07-31T12:36:26+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c461dd812", "title": "Receipt Validation – Parse and Decode a Receipt with Swift", "url": "https://www.andrewcbancroft.com/2017/07/27/receipt-validation-parsing-a-receipt-with-swift/", "published_at": "2017-07-28T03:41:33+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c46c4bd21", "title": "Receipt Validation – Verifying a Receipt Signature in Swift", "url": "https://www.andrewcbancroft.com/2017/07/16/receipt-validation-verifying-a-receipt-signature-in-swift/", "published_at": "2017-07-16T21:43:21+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4753ab2d", "title": "Using an Existing SQLite Store with NSPersistentContainer", "url": "https://www.andrewcbancroft.com/2017/07/10/using-an-existing-sqlite-store-with-nspersistentcontainer/", "published_at": "2017-07-10T18:02:05+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c47dbf1a5", "title": "Why is it called a “Closure” anyway? A Swift Conceptual Look.", "url": "https://www.andrewcbancroft.com/2017/06/05/why-is-it-called-a-closure-anyway-a-swift-conceptual-look/", "published_at": "2017-06-06T04:00:41+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4852ec90", "title": "A Swift Implementation of the Core Data Stack Using NSPersistentContainer", "url": "https://www.andrewcbancroft.com/2017/05/15/a-swift-implementation-of-the-core-data-stack-using-nspersistentcontainer/", "published_at": "2017-05-15T18:19:46+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c488e88be", "title": "Why Do We Need to Annotate Escaping Closures in Swift?", "url": "https://www.andrewcbancroft.com/2017/05/11/why-do-we-need-to-annotate-escaping-closures-in-swift/", "published_at": "2017-05-11T17:58:46+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c492ff4b3", "title": "What in the World is an “Escaping Closure” in Swift?", "url": "https://www.andrewcbancroft.com/2017/04/26/what-in-the-world-is-an-escaping-closure-in-swift/", "published_at": "2017-04-26T14:41:07+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c496c34dc", "title": "Every Developer is an API Designer", "url": "https://www.andrewcbancroft.com/2017/04/25/every-developer-api-designer/", "published_at": "2017-04-25T13:35:04+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4a319963", "title": "Core Data Model Attributes and NSManagedObject Property Types Must Match!", "url": "https://www.andrewcbancroft.com/2017/04/23/core-data-model-attributes-and-nsmanagedobject-property-types-must-match/", "published_at": "2017-04-23T20:03:34+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4a4811c8", "title": "Solving React Native’s “No bundle url present” Error", "url": "https://www.andrewcbancroft.com/2017/04/22/solving-react-natives-no-bundle-url-present-error/", "published_at": "2017-04-22T17:49:11+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4a86e38c", "title": "3 Effective Ways to Keep You Focused as a Creator", "url": "https://www.andrewcbancroft.com/2017/04/20/3-effective-ways-to-keep-you-focused-as-a-creator/", "published_at": "2017-04-20T18:04:08+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4b309fbf", "title": "How to Unwrap Multiple Optionals with One If-Let in Swift", "url": "https://www.andrewcbancroft.com/2017/04/19/how-to-unwrap-multiple-optionals-with-one-if-let-in-swift/", "published_at": "2017-04-19T17:25:41+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4be2c664", "title": "Creating the Core Data Stack with Backwards Compatibility in Swift", "url": "https://www.andrewcbancroft.com/2017/04/16/creating-the-core-data-stack-with-backwards-compatibility-in-swift/", "published_at": "2017-04-16T21:23:46+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4cd62e48", "title": "Swift Tip – Accessing a User’s Documents Directory with URL Extension", "url": "https://www.andrewcbancroft.com/2017/04/10/swift-tip-accessing-a-users-documents-directory-with-url-extension/", "published_at": "2017-04-10T18:01:23+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4cdf7ae4", "title": "Core Data Fundamentals with Swift", "url": "https://www.andrewcbancroft.com/2017/04/02/core-data-fundamentals-swift/", "published_at": "2017-04-02T22:04:02+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4d2bbfa6", "title": "Entity Framework Tip – Specifying Decimal Precision", "url": "https://www.andrewcbancroft.com/2017/03/29/entity-framework-tip-specifying-decimal-precision/", "published_at": "2017-03-29T20:57:27+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4d693176", "title": "Core Data: Solving Ambiguous Type / Redeclaration of Type", "url": "https://www.andrewcbancroft.com/2017/03/28/core-data-solving-ambiguous-type-redeclaration-of-type/", "published_at": "2017-03-29T02:57:05+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4e683c57", "title": "Solving ‘Spatial types and functions are not available’ with Entity Framework", "url": "https://www.andrewcbancroft.com/2017/03/27/solving-spatial-types-and-functions-are-not-available-with-entity-framework/", "published_at": "2017-03-27T16:38:33+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4eb75281", "title": "Disabling Xcode’s OS-Level Debug Logging", "url": "https://www.andrewcbancroft.com/2016/10/28/disabling-xcode-os-level-debug-logging/", "published_at": "2016-10-28T05:06:19+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4ef3bc92", "title": "Using a Core Data Model in Swift Playgrounds", "url": "https://www.andrewcbancroft.com/2016/07/10/using-a-core-data-model-in-swift-playgrounds/", "published_at": "2016-07-10T20:48:54+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4f874a34", "title": "TypeScript Build Errors When Publishing ASP.Net Web Project", "url": "https://www.andrewcbancroft.com/2016/06/29/typescript-build-errors-when-publishing-asp-net-web-project/", "published_at": "2016-06-29T18:41:59+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c4fe87ba4", "title": "Force Unwrapping Swift Optionals: Code Smell!", "url": "https://www.andrewcbancroft.com/2016/06/13/force-unwrapping-swift-optionals-code-smell/", "published_at": "2016-06-14T03:54:57+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c503c6a31", "title": "Is Protocol Oriented Swift Better than Object Oriented Swift?", "url": "https://www.andrewcbancroft.com/2016/06/12/is-protocol-oriented-swift-better-than-object-oriented-swift/", "published_at": "2016-06-12T20:59:48+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c5057c4cc", "title": "Extracting a PKCS7 Container for Receipt Validation with Swift", "url": "https://www.andrewcbancroft.com/2016/06/09/extracting-a-pkcs7-container-for-receipt-validation-with-swift/", "published_at": "2016-06-10T03:44:58+00:00" }, { "id": "01a0821a-604c-72f1-aea5-fb0c50e5b56c", "title": "Creating Calendar Events with Event Kit and Swift", "url": "https://www.andrewcbancroft.com/2016/06/02/creating-calendar-events-with-event-kit-and-swift/", "published_at": "2016-06-02T17:37:15+00:00" } ] posts Claim your blog
Back to Andrew Bancroft
Blog · corpus.blog/blogs/andrewcbancroft.com/posts

Andrew Bancroft

andrewcbancroft.com

2026

2024

2023

2021

2020

2019

2018

2017

2016