CGSize is encoded to an array by default. I would like to encode it to [String: Float] (i.e. ["width": 10, "height": 20]). Is there a way to override the default encoding/decoding behavior? Of course, as a workaround, I can define my own Dimension type and use that instead. I am just curious to know.
Swift - Override default encoding/decoding
638 Views Asked by Jack Guo At
1
There are 1 best solutions below
Related Questions in SWIFT
- Overlapping UICollectionView in storyboard
- Cannot pod spec lint because of undeclared type errors
- Swift code with multiple NSDateFormatter - optimization
- How do I add multiple in app purchases in Swift Spritekit?
- cellForRowAtIndexPath and prepareForSegue return different label colors
- Getting this message in my console in xcode "Ignoring restoreCompletedTransactionsWithApplicationUsername: because already restoring transactions"?
- Change background of an Accessory View in a UITableViewCell
- fade in an bounce animation subview
- Create a PFObject and PFRelation after PFUser Sign Up
- Swift 2 - Pattern matching in "if"
- How do I give inputs through NSURL
- How do I add custom cells to TableView in Swift?
- UIWebView not loading URL in simulator
- Compiler complains that 'Expression resolved to unused function' when removing index in array of functions
- Cast from 'Int?' to unrelated type 'NSNumber' always fails
Related Questions in JSONENCODER
- Serializing Foundation and non-foundation types to JSON in swift
- Swift used Codable, but the type is not correct
- Swift - Override default encoding/decoding
- JSONEncoder().encode is always empty
- How to preserve key order in a Django JSONField
- Error "JSON parse unexpected non-whitespace character " in php
- How do I convert a dictionary to top level JSON in Swift?
- Swift 4 JSONEncoder returns empty JSON array
- How to Remove Double Quotes in Json Response
- json response convert int to string problem laravel
- JSON encode Data Getinto foreach
- Limit precision on JSONEncoder's Double output
- Swift/JSONEncoder: Encoding class containing a nested raw JSON object literal
- Root name and child name for json format using json_encode in php
- How to encode enum with Arrays of Custom Objects
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
There is no supported way to outright override the encoding format for a given type you don't own; there are hacks that you can apply to override some types within your own module, but they're fragile and not worth employing.
If you use a 3rd-party encoder/decoder combo that isn't
Foundation.JSONEncoder/Foundation.JSONDecoder, it may offer an override facility similar to encoding/decoding strategies supported by Foundation, but that is dependent on the tools you're using.The "official" way to do this would be to either wrap
CGSizein a type you do own (as you suggest) and implementinit(from:)/encode(to:)there, or overrideinit(from:)/encode(to:)for all of the types that useCGSize(but this can get pretty tedious).