Post

Replies

Boosts

Views

Activity

Which Xcode files can I delete on macOS Monterey?
Which build caches and unused SDKs can I delete to free up storage on my Mac Pro with the latest macOS Monterey that I just updated? The all fall under the heading "Xcode Project Build Files". I see some that are considered "Xcode Project Build Files" and some "iOS Device Support" and some that are considered "BridgeOS Device Support". They all have the Xcode icon. I explain in detail below how I get to this screen. Basically it's in the System Information app. I'm not sure what is safe to delete. I have to free up space to update my Xcode on my Mac Pro. When I look at the screen that shows when I got to the Apple Logo on the very top left-hand corner of the menu, then go to About this Mac, then the Storage Tab and then click on the button that says "Manage...", then click on the button that says "Review Files"... When I click on "Developer" on the left tab, I see some rather large files. At the top it says, "Remove project build caches and unused SDKs to free storage space."
1
0
1.7k
Jul ’22
Is this self-initializing variable initialized at app launch, or initialized when it is first called upon by an executing code?
What is this type of variable (specifically constant) declaration called that initializes itself with a "stored procedure" with code within curly braces followed by an empty set of parentheses? I don't know what key words to search for. let object: NSObject = {   let nestedObject = NSObject()   return nestedObject }() I want to know if that variable gets initialized when it's needed the first time if I declare it globally in a swift file outside any other scope, or if it is initialized when the iOS app starts up before the variable is even called. I thought the code within the curly braces runs when the iOS app launches, thus initializing the value of the variable, but I got an run time error while debugging my Xcode project when such a variable is called for the first time. I got a runtime error that says: EXC_BREAKPOINT (code=1, subcode=0x...) I also was told at one time in a question I posted on stackoverflow that the code runs only once.
1
0
343
Jul ’22
How do I store FileManager.ubiquityIdentityToken?
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?
3
1
1.7k
Jul ’22
When does iOS purge local storage?
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.
0
0
706
Jul ’22
When can I run a synchronous code by executing DispatchQueue.main.sync { }?
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?
1
0
1k
Jul ’22
Does synchronous mean that by definition it is run on and called from separate threads, or does it have to be that way because of the way things are?
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.
1
0
639
Jul ’22
Why does the intent property not show for NSExtensionContext?
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.
1
0
1.3k
Jul ’22
How does my app know when iOS calls completionHandler of completeRequest(returningItems:completionHandler:)?
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?
2
0
682
Jul ’22
Where can I find a logical disjunction operator or function for Swift?
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.
1
0
982
Jun ’22