Post not yet marked as solved
I need any kind of help I can get on this question and am open to any solutions or workarounds.
When I archive FileManager.ubiquityIdentityToken with NSKeyedArchiver.archivedData(withRootObject:requiringSecureCoding:), what should I set the second parameter to in order to be able to unarchive later, and how do I unarchive the Data object using unarchivedObject(ofClass:from:) or any other method of NSKeyedUnarchiver?
My code currently uses the deprecated method of archivedData(withRootObject:), which gives me a code time warning saying:
'archivedData(withRootObject:)' was deprecated in iOS 12.0: Use +archivedDataWithRootObject:requiringSecureCoding:error: instead
I'm getting code time error messages in red for the argument to archivedData(withRootObject:requiringSecureCoding:) which is declared as type Any. I tried different arguments. The one I this should work is (NSCoding & NSCopying & NSObject).Type, which generates two error messages:
Static method 'unarchivedObject(ofClass:from:)' requires that '(NSObject & NSCoding & NSCopying).Type' inherit from 'NSObject'
Type '(NSObject & NSCoding & NSCopying).Type' cannot conform to 'NSCoding'
Setting the argument to (NSCoding & NSCopying & NSObject) generates the error message:
'NSObject & NSCoding & NSCopying' cannot be used as a type conforming to protocol 'NSCoding' because 'NSCoding' has static requirements
I haven't been able to discover what that means that 'NSCoding' has static
I get the idea to use (NSCoding & NSCopying & NSObject) because when run code:
print("type of FileManager.default.ubiquityIdentityToken: \(type(of: FileManager.default.ubiquityIdentityToken))")
the debug window shows
type of FileManager.default.ubiquityIdentityToken: Optional<NSCoding & NSCopying & NSObject>
but when I run the following code
print("type of FileManager.default.ubiquityIdentityToken: \(type(of: FileManager.default.ubiquityIdentityToken!))")
I get the following in the debug window
type of FileManager.default.ubiquityIdentityToken: _NSInlineData
I read on stackoverflow that "_NSInlineData" is not made available to us by Apple.
I'm open to doing this any other way, not necessarily with NSKeyedArchiver or NSKeyedUnarchiver, including using unsafe pointers if necessary.
In one of Apple's documentation or sample Xcode projects, I found code to check the login status of a user on iOS when an app logs on by checking FileManager.ubiquityIdentityToken and to check the current status with the previous status by checking the ubiquityIdentityToken that was saved in UserDefaults. Is there a better way of doing this?
Post not yet marked as solved
This documentation: Documentation/Bundle/Resources/Information Property List/Data and storage/NSSupportsPurgeableLocalStorage says:
Property List Key
NSSupportsPurgeableLocalStorage
A Boolean value indicating whether the app continues working if the system purges the local storage.
Under what conditions does the system "[purge] the local storage", and does this mean the entire local storage for the app? I can see how when a user deletes an app the local storage would be deleted, but then the app would not continue working, since it's no longer on the device.
Post not yet marked as solved
How can my app know if a text message is sent to a device that has my app installed?
Is there a user notification or a remote notification that notifies when a text message or iMessage arrives on the device?
i’m willing to try anything.
Post not yet marked as solved
The intent property doesn't even show when I initialize an instance of NSExtensionContent, as in the following code:
let extensionContext = NSExtensionContext() extensionContext.intent
I get an error saying:
Value of type 'NSExtensionContext' has no member 'intent'
Why is this? The documentation doesn't say it is deprecated. Even when something is deprecated, it still shows in Xcode.
Post not yet marked as solved
I tried running the following code and it raises the following error every time:
DispatchQueue.main.sync { }
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
I found this post on stackoverflow that says to never run synchronous code on the main queue:
DispatchQueue crashing with main.sync in Swift
I had assumed that because the sync { } method is there that means there is some context that it can be used. Is there absolutely no use for executing synchronous code on the main queue?
Post not yet marked as solved
Does an operation that is synchronous have to be run on a separate thread? I think so, otherwise it would deadlock right from the beginning, if it’s run on and called from the main thread. What about if it’s run on and called from a thread other than the main thread? Will it deadlock?
This question arose when I was reading the following content at
Documentation/Foundation/Task Management/Operation
Asynchronous Versus Synchronous Operations
When you add an operation to an operation queue, the queue ignores the value of the isAsynchronous property and always calls the start() method from a separate thread. Therefore, if you always run operations by adding them to an operation queue, there is no reason to make them asynchronous.
Post not yet marked as solved
Anyone have any recommendations on how to resize a screen video of an iPhone from 750x1334 to 1080x1920 as required by App Store Connect? Or any alternative solutions?
Post not yet marked as solved
In this documentation for completeRequest(returningItems:completionHandler:), there is a box shaded yellow that says:
Important
If the system calls your block with an expired value of true, you must immediately suspend your app extension. If you fail to do this, the system terminates your extension’s process.
How does my app or my Share Extension know when the system calls the block spoken of?
Post not yet marked as solved
Where is Apple's documentation of NSConcreteAttributedString?
I need to get the String from NSExtensionItem.attributedContentText property, which is of type NSConcreteAttributedString.
Post not yet marked as solved
Where is the “Use standard social compose interface” checkbox "in the Xcode target-adding pane" that the documentation for Share App Extension references in the "NOTE" grayed section under the "Use the Xcode Share Template"?
I am sure it's not where it says it is.
Post not yet marked as solved
What criteria does Apple use to determine whether a vCard sent for example as an email attachment has a duplicate? I would think there has to be more in common between the duplicates than just the given name and the family name? Does Apple say whether the given name, family name, and address enough similarities to consider two contacts duplicates of each other?
Post not yet marked as solved
I'm looking for the Swift tutorial that had always been used since I started learning Swift for the first time about 5 years ago. I can't remember the name. It was an app that reviewed restaurants, as I remember. I need a sample of key-value-coding. I recall that tutorial used key-value-coding.
Post not yet marked as solved
Is there a logical disjunction operator or function in Swift?
Even better, is there a logical disjunction that works with optional variables instead of boolean variables that returns an object when true, and returns nil when false?
A logical disjunction evaluates two boolean variables, and if at least one of them is true, then the return value is true. If neither variables is true, then the return value is false.
Post not yet marked as solved
I would like my app to allow the Messages app to allow content shared with the user of the Messages app in iOS to automatically appear in my app when my app is selected in iOS Settings->Messages->Shared with You. I can't find information saying I can do this. The Share app extension doesn't enable this. Please someone say they know how to do this?
Post not yet marked as solved
I signed out of iCloud in the iPhone 8 Simulator, and it has shown the screen saying "Removing iCloud data..." showing that it's working for a few hours now. When it did this before, I shut down the Simulator and when I opened the Simulator again, it shows that it never logged out of iCloud.