Swift Playground

RSS for tag

Learn and explore coding in Swift through interactive learning experiences on the Swift Playground app for iPadOS and macOS.

Swift Playground Documentation

Posts under Swift Playground subtopic

Post

Replies

Boosts

Views

Activity

Any approaches to Swift Playgrounds on macOS Monterey?
Hi, dear community, I recently updated my old Macbook pro(model 2016) to Monterey(which is the latest macOS that support 2016 model), but the Swift Playgrounds on AppStore requires macOS 13. Is there any way I can get the app, just like Xcode? Xcode provides an alternative way to download the xip file of an older version, but playgrounds does. Many thanks in advance, any help will be appreciated!
1
0
977
Oct ’23
Swift Playgrounds beta with support for iOS 17 and macOS 14 expired!
Since Swift Playgrounds was able to submit Apps to the AppStore ,Apple stated that it can be used to develop apps without having to use Xcode. But if you do so you are lost: The Testflight beta versions of Swift Playgrounds with API support for iOS 17 and macOS 14 have expired one week before the new systems become/became available and there is still no final version! If you used Playgrounds to develop an iOS 17 ready version of your app you can't do anything now and that at a time where the users get their hands on the new OS. That is really bad.
3
3
1.5k
Oct ’23
XCode 15 bug - Playground cannot find file inside Resources
I have the simplest Playground to display image. I have images inside Resources. Somewhat it does not work and I am really confused. I am using macOS XCode. I think on iPad Swift Playground this might work. import SwiftUI import PlaygroundSupport struct ContentView: View { var body: some View { Image("image1") .resizable() .frame(width: 512, height: 512) } } let hostingController = UIHostingController(rootView: ContentView()) PlaygroundPage.current.liveView = hostingController
2
1
1.2k
Sep ’23
Not able to reference classes/structs in Swift playground sources
I have to admit that this is strange for me. Though I have been using playgrounds for years, but I only write small pieces of code to test simple ideas, and I never used another source file. Today I want to add a new struct in Sources folder. To my surprise, I am not able to reference the struct in the main playground file. Sources/testlets.swift: struct Dummy { var name: String } MyPlayground: var box = Dummy(name: "abc") // error: /.../MyPlayground.playground:22:11 Cannot find 'Dummy' in scope
2
0
968
Aug ’23
Swift Playground Questions
Is there a Form where I, a noobie, can ask really basic questions about this learning environment? As an example, I discovered the semi-colon in doing a task in the early part of "learn to Code" but I have not found any documentation for it. I am sure I will have other questions but right now I am just looking for a place to ask them. Thank you in advance.
1
0
1.4k
Jul ’23
Use WeatherKit in an Xcode playground?
Can it be done? I can reliably crash Xcode by attempting the following in a playground: import UIKit import WeatherKit import CoreLocation let sanFrancisco = CLLocation(latitude: 37.7749, longitude: 122.4194) let weatherService = WeatherService() let weather = try await weatherService.weather(for: sanFrancisco) let temperature = weather.currentWeather.temperature print(temperature) Xcode 14.3.1 macOS 13.4.1
8
1
1.8k
Jul ’23
I-Visualization Revisited Exercise - Develop in Swift Explorations | Xcode 11
I'm encountering the same problem, the chart view stays blank! The code supposed to draw a PiChart with a customization in its style. The exercise is as follows: Pie Charts, Revisited The new API for pie charts exposes two new types: PieWedge and PieChartView. The PieWedge struct gives you several ways to create visual effects with pie charts. It has the following properties: proportion: The percentage of the pie occupied by the wedge, expressed as a Double. color: The color of the wedge. You can use any one of the following values. (Remember to use a period before the color name. If you don't, Swift will return a "use of unresolved identifier" error.) .black .blue .brown .cyan .darkGray .gray .green .lightGray .magenta .orange .purple .red .yellow scale: The radius of the wedge relative to the pie's natural radius, expressed as a Double. Less than 1.0 will make the wedge smaller than normal-sized wedges, and greater than 1.0 will make the wedge larger (typically the desired effect). offset: The distance a wedge lies from the center of the pie, relative to the size of the wedge. An offset of 0 keeps the wedge at the center of the pie. An offset of 1.0 moves the center point of the wedge to where its outer edge would be. The makePieChart() function creates an instance of a PieChartView named pieChartView. PieChartView has one property named wedges, which is an array of PieWedge instances. Assign an array of wedges to this property, or use the append() method of Array to add them one at a time. Keys makePieChart() also creates a key named keyView. It's an instance of ChartKeyView, which has a keyItems property. keyItems is an array of ChartKeyItem instances. ChartKeyItem has the following properties: color: The color swatch displayed in the key. You can use any of the following values. .black .blue .brown .cyan .darkGray .gray .green .lightGray .magenta .orange .purple .red .yellow name: The text to display expressed as a String. Create a pie chart using your own data. Play with different scale and offset properties to see how they affect the look of your chart. My Code: makePieChart() let myPiWedge1 = PieWedge(proportion: 0.1, color: .red, scale: 1.0, offset: 1.0) let myPiWedge2 = PieWedge(proportion: 0.4, color: .blue, scale: 1.0, offset: 1.0) let myPiWedge3 = PieWedge(proportion: 0.5, color: .yellow, scale: 1.0, offset: 1.0) var myPieChartViewArray = PieChartView().wedges myPieChartViewArray = [myPiWedge1, myPiWedge2, myPiWedge3] var myKeyView = keyView.keyItems let myChartKeyItem1 = ChartKeyItem(color: .red, name: "w1") let myChartKeyItem2 = ChartKeyItem(color: .blue, name: "w2") let myChartKeyItem3 = ChartKeyItem(color: .yellow, name: "w3") myKeyView = [myChartKeyItem1, myChartKeyItem2, myChartKeyItem3] I tried this as well, it shows the same issue: makePieChart () //Create an array of PieWedge instances var wedges: [PieWedge] = [] // Create individual PieWedge instances and add them to the wedges array let wedge1 = PieWedge(proportion: 0.3, color: .red, scale: 1.0, offset: 0) let wedge2 = PieWedge(proportion: 0.2, color: .blue, scale: 0.8, offset: 0.2) let wedge3 = PieWedge(proportion: 0.5, color: .green, scale: 1.2, offset: 0) wedges.append(wedge1) wedges.append(wedge2) wedges.append(wedge3) // Create an instance of PieChartView and assign the wedges array let pieChartView = PieChartView() pieChartView.wedges = wedges // Create an instance of ChartKeyView and configure its keyItems array let keyItem1 = ChartKeyItem(color: .red, name: "Red Wedge") let keyItem2 = ChartKeyItem(color: .blue, name: "Blue Wedge") let keyItem3 = ChartKeyItem(color: .green, name: "Green Wedge") let keyItems = [keyItem1, keyItem2, keyItem3] let keyView = ChartKeyView() keyView.keyItems = keyItems Any one can help? to me it sounds that the playground has some bug in it :) This exercise from the book "Explorations": Exploration --> Student --> 3-Organizing Data --> 2-Play with Complex Data --> I-Visualization Revisited
1
0
723
Jul ’23
Xcode error
I just started to learn how to code with "Intro to App Development With Swift" from Apple on iBooks and whenever I try to edit one of the given practice files, a window pops up saying "The document “02_Naming.playground” could not be saved. The file has been changed by another application. Click Save Anyway to keep your changes and save the changes made by the other application as a version, or click Revert to keep the changes from the other application and save your changes as a version. You can also click Save As to save your changes to a different file." This error pops up every time I type a keystroke in the file. How do I fix this?
11
2
6.3k
Jul ’23
Playground execution failed: error: Execution was interrupted, reason: shared-library-event.
Why did I get an error in playground in debug window for this code? print("// MARK: - Start execable code here...") do { let store = CNContactStore() if try await store.requestAccess(for: .contacts) { // Do something with Contacts. let phoneNumber = CNPhoneNumber(stringValue: "903-276-1046") let predicateForContactsMatchingPhoneNumber = CNContact.predicateForContacts(matching: phoneNumber) let contactFetchRequest = CNContactFetchRequest(keysToFetch: thoroughKeysToCompare) contactFetchRequest.predicate = predicateForContactsMatchingPhoneNumber contactFetchRequest.unifyResults = true var contactOfMe: CNContact! = nil try! store.enumerateContacts(with: contactFetchRequest) { contact, stop in contactOfMe = contact stop.pointee = true } let contact = Contact(cnContact: contactOfMe) for property in contact.enumerated() { print("- \(property)") } } else { // Handle if Contacts access is denied. fatalError() } } catch { // Handle any error. print("error requesting access: \(error.localizedDescription)") } Debug window: // MARK: - Start execable code here... Playground execution failed: error: Execution was interrupted, reason: shared-library-event. The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation. * thread #1, queue = 'com.apple.main-thread' frame #0: 0x00007ff80002f931 libobjc.A.dylib`_mapStrHash(_NXMapTable*, void const*) + 73 frame #1: 0x00007ff80002fc7f libobjc.A.dylib`_NXMapMember(_NXMapTable*, void const*, void**) + 35 frame #2: 0x00007ff80003b7ae libobjc.A.dylib`getProtocol(char const*) + 41 frame #3: 0x00007ff8000428e6 libobjc.A.dylib`class_conformsToProtocol + 337 frame #4: 0x00007ff80004ab4e libobjc.A.dylib`-[NSObject conformsToProtocol:] + 47 frame #5: 0x0000000109c27951 UIKitCore`_UIFocusItemContainerIsScrollableContainer + 74 frame #6: 0x0000000109c28e38 UIKitCore`-[_UIFocusEnvironmentContainerTuple initWithOwningEnvironment:itemContainer:] + 194 frame #7: 0x0000000109c28fed UIKitCore`+[_UIFocusEnvironmentContainerTuple tupleWithOwningEnvironment:itemContainer:] + 70 frame #8: 0x0000000109c4f41e UIKitCore`_UIFocusRegionContainerFromEnvironmentAndContainer + 44 frame #9: 0x0000000109c27ed3 UIKitCore`_UIFocusItemContainerAddChildItemsInContextWithArguments + 1162 frame #10: 0x000000010a99c439 UIKitCore`-[UIView _searchForFocusRegionsInContext:] + 962 frame #11: 0x0000000109c6b37f UIKitCore`-[_UIFocusMapSnapshot addRegionsInContainer:] + 4583 frame #12: 0x0000000109c69740 UIKitCore`-[_UIFocusMapSnapshot _capture] + 456 frame #13: 0x0000000109c67fc5 UIKitCore`-[_UIFocusMapSnapshot _initWithSnapshotter:mapArea:searchArea:] + 628 frame #14: 0x0000000109c6cce2 UIKitCore`-[_UIFocusMapSnapshotter captureSnapshot] + 227 frame #15: 0x0000000109c5f450 UIKitCore`-[_UIFocusMap _inferredDefaultFocusItemInEnvironment:] + 147 frame #16: 0x0000000109c2b1cf UIKitCore`-[_UIFocusEnvironmentPreferenceEnumerationContext _inferPreferencesForEnvironment:] + 157 frame #17: 0x0000000109c2abbc UIKitCore`-[_UIFocusEnvironmentPreferenceEnumerationContext _resolvePreferredFocusEnvironments] + 118 frame #18: 0x0000000109c2ab12 UIKitCore`-[_UIFocusEnvironmentPreferenceEnumerationContext prefersNothingFocused] + 31 frame #19: 0x0000000109c2beeb UIKitCore`_enumeratePreferredFocusEnvironments + 198 frame #20: 0x0000000109c2c061 UIKitCore`_enumeratePreferredFocusEnvironments + 572 frame #21: 0x0000000109c2c061 UIKitCore`_enumeratePreferredFocusEnvironments + 572 frame #22: 0x0000000109c2c061 UIKitCore`_enumeratePreferredFocusEnvironments + 572 frame #23: 0x0000000109c2bd11 UIKitCore`-[_UIFocusEnvironmentPreferenceEnumerator enumeratePreferencesForEnvironment:usingBlock:] + 230 frame #24: 0x0000000109c2c747 UIKitCore`-[_UIDeepestPreferredEnvironmentSearch deepestPreferredFocusableItemForEnvironment:withRequest:] + 817 frame #25: 0x0000000109c95837 UIKitCore`-[UIFocusUpdateContext _updateDestinationItemIfNeeded] + 265 frame #26: 0x0000000109c95627 UIKitCore`-[UIFocusUpdateContext _destinationItemInfo] + 22 frame #27: 0x0000000109c95535 UIKitCore`-[UIFocusUpdateContext nextFocusedItem] + 24 frame #28: 0x0000000109c71ea6 UIKitCore`-[UIFocusSystem updateFocusIfNeeded] + 1347 frame #29: 0x0000000109c7608c UIKitCore`__43-[UIFocusSystem _updateFocusUpdateThrottle]_block_invoke + 34 frame #30: 0x000000010a94b971 UIKitCore`-[_UIAfterCACommitBlock run] + 57 frame #31: 0x000000010a94be71 UIKitCore`-[_UIAfterCACommitQueue flush] + 191 frame #32: 0x000000010a3926eb UIKitCore`_runAfterCACommitDeferredBlocks + 782 frame #33: 0x000000010a380fa2 UIKitCore`_cleanUpAfterCAFlushAndRunDeferredBlocks + 96 frame #34: 0x000000010a3b6be1 UIKitCore`_afterCACommitHandler + 58 frame #35: 0x00007ff8003b1c12 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 frame #36: 0x00007ff8003ac57f CoreFoundation`__CFRunLoopDoObservers + 515 frame #37: 0x00007ff8003acaa2 CoreFoundation`__CFRunLoopRun + 1121 frame #38: 0x00007ff8003ac264 CoreFoundation`CFRunLoopRunSpecific + 560 frame #39: 0x00007ff8003ad234 CoreFoundation`CFRunLoopRun + 40 frame #40: 0x00007ff83755a4e3 libswift_Concurrency.dylib`swift_task_asyncMainDrainQueueImpl() + 35 frame #41: 0x00007ff83755a4b4 libswift_Concurrency.dylib`swift_task_asyncMainDrainQueue + 52 frame #42: 0x00000001015d409f $__lldb_expr32`main at <unknown>:0 frame #43: 0x0000000100e25560 EnumeratedContactsCNContact`linkResources + 256 frame #44: 0x00007ff8003b2986 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 frame #45: 0x00007ff8003b2148 CoreFoundation`__CFRunLoopDoBlocks + 399 frame #46: 0x00007ff8003ace09 CoreFoundation`__CFRunLoopRun + 1992 frame #47: 0x00007ff8003ac264 CoreFoundation`CFRunLoopRunSpecific + 560 frame #48: 0x00007ff809b4024e GraphicsServices`GSEventRunModal + 139 frame #49: 0x000000010a3827bf UIKitCore`-[UIApplication _run] + 994 frame #50: 0x000000010a3875de UIKitCore`UIApplicationMain + 123 * frame #51: 0x0000000100e256c5 EnumeratedContactsCNContact`main + 357 frame #52: 0x0000000100fbb384 dyld_sim`start_sim + 10 frame #53: 0x000000010943341f dyld`start + 1903```
0
1
1.7k
Jun ’23
Enabling outgoing network connections in Swift Playgrounds app
I am trying to develop an App in Swift Playgrounds that will use the SwiftMQTT package. SwiftMQTT needs to open an outgoing network connection to connect the app to an MQTT server. To integrate the package, I wrote a basic manager class as an observable object. When I try to make a connection with this manager, Swift Playgrounds appears to block the connection. Searching around, I found that this was likely due to sandboxing but couldn't figure out how to fix it in Swift Playgrounds. To test this idea, I moved my manager class over to XTools and created a test app to make the connection. Initially, I got the same error. However, XTools let me make the needed sandbox setting on the Signing & Capabilities page of the app. Click/checkmarking "Outgoing Connections (Client)" under Network solved my problem there. I would still like to do this in Playgrounds but can't for the life of me figure out how to open up the sandbox. Can anybody point me there (or wave me off if this is currently impossible).
2
0
2.5k
Jun ’23
BLE Periodic Advertisement & Scanning
I'm trying to determine if Core Bluetooth, in the latest versions of iOS and iPadOS, supports scanning for periodic advertisements as defined in Bluetooth 5? If so, what configuration parameters are required for a peripheral device to successfully achieve recognizable periodic advertisements that will be discovered by iPhones/iPads? For instance, supported PHY settings or anything else? If iOS/iPadOs doesn’t support periodic advertising, is it on the roadmap? If so, when will it be available and which devices will be supported? Thanks.
3
0
1.9k
May ’23
Any approaches to Swift Playgrounds on macOS Monterey?
Hi, dear community, I recently updated my old Macbook pro(model 2016) to Monterey(which is the latest macOS that support 2016 model), but the Swift Playgrounds on AppStore requires macOS 13. Is there any way I can get the app, just like Xcode? Xcode provides an alternative way to download the xip file of an older version, but playgrounds does. Many thanks in advance, any help will be appreciated!
Replies
1
Boosts
0
Views
977
Activity
Oct ’23
Swift Playgrounds beta with support for iOS 17 and macOS 14 expired!
Since Swift Playgrounds was able to submit Apps to the AppStore ,Apple stated that it can be used to develop apps without having to use Xcode. But if you do so you are lost: The Testflight beta versions of Swift Playgrounds with API support for iOS 17 and macOS 14 have expired one week before the new systems become/became available and there is still no final version! If you used Playgrounds to develop an iOS 17 ready version of your app you can't do anything now and that at a time where the users get their hands on the new OS. That is really bad.
Replies
3
Boosts
3
Views
1.5k
Activity
Oct ’23
XCode 15 bug - Playground cannot find file inside Resources
I have the simplest Playground to display image. I have images inside Resources. Somewhat it does not work and I am really confused. I am using macOS XCode. I think on iPad Swift Playground this might work. import SwiftUI import PlaygroundSupport struct ContentView: View { var body: some View { Image("image1") .resizable() .frame(width: 512, height: 512) } } let hostingController = UIHostingController(rootView: ContentView()) PlaygroundPage.current.liveView = hostingController
Replies
2
Boosts
1
Views
1.2k
Activity
Sep ’23
Not able to reference classes/structs in Swift playground sources
I have to admit that this is strange for me. Though I have been using playgrounds for years, but I only write small pieces of code to test simple ideas, and I never used another source file. Today I want to add a new struct in Sources folder. To my surprise, I am not able to reference the struct in the main playground file. Sources/testlets.swift: struct Dummy { var name: String } MyPlayground: var box = Dummy(name: "abc") // error: /.../MyPlayground.playground:22:11 Cannot find 'Dummy' in scope
Replies
2
Boosts
0
Views
968
Activity
Aug ’23
Swift Playground Questions
Is there a Form where I, a noobie, can ask really basic questions about this learning environment? As an example, I discovered the semi-colon in doing a task in the early part of "learn to Code" but I have not found any documentation for it. I am sure I will have other questions but right now I am just looking for a place to ask them. Thank you in advance.
Replies
1
Boosts
0
Views
1.4k
Activity
Jul ’23
Use WeatherKit in an Xcode playground?
Can it be done? I can reliably crash Xcode by attempting the following in a playground: import UIKit import WeatherKit import CoreLocation let sanFrancisco = CLLocation(latitude: 37.7749, longitude: 122.4194) let weatherService = WeatherService() let weather = try await weatherService.weather(for: sanFrancisco) let temperature = weather.currentWeather.temperature print(temperature) Xcode 14.3.1 macOS 13.4.1
Replies
8
Boosts
1
Views
1.8k
Activity
Jul ’23
I-Visualization Revisited Exercise - Develop in Swift Explorations | Xcode 11
I'm encountering the same problem, the chart view stays blank! The code supposed to draw a PiChart with a customization in its style. The exercise is as follows: Pie Charts, Revisited The new API for pie charts exposes two new types: PieWedge and PieChartView. The PieWedge struct gives you several ways to create visual effects with pie charts. It has the following properties: proportion: The percentage of the pie occupied by the wedge, expressed as a Double. color: The color of the wedge. You can use any one of the following values. (Remember to use a period before the color name. If you don't, Swift will return a "use of unresolved identifier" error.) .black .blue .brown .cyan .darkGray .gray .green .lightGray .magenta .orange .purple .red .yellow scale: The radius of the wedge relative to the pie's natural radius, expressed as a Double. Less than 1.0 will make the wedge smaller than normal-sized wedges, and greater than 1.0 will make the wedge larger (typically the desired effect). offset: The distance a wedge lies from the center of the pie, relative to the size of the wedge. An offset of 0 keeps the wedge at the center of the pie. An offset of 1.0 moves the center point of the wedge to where its outer edge would be. The makePieChart() function creates an instance of a PieChartView named pieChartView. PieChartView has one property named wedges, which is an array of PieWedge instances. Assign an array of wedges to this property, or use the append() method of Array to add them one at a time. Keys makePieChart() also creates a key named keyView. It's an instance of ChartKeyView, which has a keyItems property. keyItems is an array of ChartKeyItem instances. ChartKeyItem has the following properties: color: The color swatch displayed in the key. You can use any of the following values. .black .blue .brown .cyan .darkGray .gray .green .lightGray .magenta .orange .purple .red .yellow name: The text to display expressed as a String. Create a pie chart using your own data. Play with different scale and offset properties to see how they affect the look of your chart. My Code: makePieChart() let myPiWedge1 = PieWedge(proportion: 0.1, color: .red, scale: 1.0, offset: 1.0) let myPiWedge2 = PieWedge(proportion: 0.4, color: .blue, scale: 1.0, offset: 1.0) let myPiWedge3 = PieWedge(proportion: 0.5, color: .yellow, scale: 1.0, offset: 1.0) var myPieChartViewArray = PieChartView().wedges myPieChartViewArray = [myPiWedge1, myPiWedge2, myPiWedge3] var myKeyView = keyView.keyItems let myChartKeyItem1 = ChartKeyItem(color: .red, name: "w1") let myChartKeyItem2 = ChartKeyItem(color: .blue, name: "w2") let myChartKeyItem3 = ChartKeyItem(color: .yellow, name: "w3") myKeyView = [myChartKeyItem1, myChartKeyItem2, myChartKeyItem3] I tried this as well, it shows the same issue: makePieChart () //Create an array of PieWedge instances var wedges: [PieWedge] = [] // Create individual PieWedge instances and add them to the wedges array let wedge1 = PieWedge(proportion: 0.3, color: .red, scale: 1.0, offset: 0) let wedge2 = PieWedge(proportion: 0.2, color: .blue, scale: 0.8, offset: 0.2) let wedge3 = PieWedge(proportion: 0.5, color: .green, scale: 1.2, offset: 0) wedges.append(wedge1) wedges.append(wedge2) wedges.append(wedge3) // Create an instance of PieChartView and assign the wedges array let pieChartView = PieChartView() pieChartView.wedges = wedges // Create an instance of ChartKeyView and configure its keyItems array let keyItem1 = ChartKeyItem(color: .red, name: "Red Wedge") let keyItem2 = ChartKeyItem(color: .blue, name: "Blue Wedge") let keyItem3 = ChartKeyItem(color: .green, name: "Green Wedge") let keyItems = [keyItem1, keyItem2, keyItem3] let keyView = ChartKeyView() keyView.keyItems = keyItems Any one can help? to me it sounds that the playground has some bug in it :) This exercise from the book "Explorations": Exploration --> Student --> 3-Organizing Data --> 2-Play with Complex Data --> I-Visualization Revisited
Replies
1
Boosts
0
Views
723
Activity
Jul ’23
Xcode error
I just started to learn how to code with "Intro to App Development With Swift" from Apple on iBooks and whenever I try to edit one of the given practice files, a window pops up saying "The document “02_Naming.playground” could not be saved. The file has been changed by another application. Click Save Anyway to keep your changes and save the changes made by the other application as a version, or click Revert to keep the changes from the other application and save your changes as a version. You can also click Save As to save your changes to a different file." This error pops up every time I type a keystroke in the file. How do I fix this?
Replies
11
Boosts
2
Views
6.3k
Activity
Jul ’23
Playground execution failed: error: Execution was interrupted, reason: shared-library-event.
Why did I get an error in playground in debug window for this code? print("// MARK: - Start execable code here...") do { let store = CNContactStore() if try await store.requestAccess(for: .contacts) { // Do something with Contacts. let phoneNumber = CNPhoneNumber(stringValue: "903-276-1046") let predicateForContactsMatchingPhoneNumber = CNContact.predicateForContacts(matching: phoneNumber) let contactFetchRequest = CNContactFetchRequest(keysToFetch: thoroughKeysToCompare) contactFetchRequest.predicate = predicateForContactsMatchingPhoneNumber contactFetchRequest.unifyResults = true var contactOfMe: CNContact! = nil try! store.enumerateContacts(with: contactFetchRequest) { contact, stop in contactOfMe = contact stop.pointee = true } let contact = Contact(cnContact: contactOfMe) for property in contact.enumerated() { print("- \(property)") } } else { // Handle if Contacts access is denied. fatalError() } } catch { // Handle any error. print("error requesting access: \(error.localizedDescription)") } Debug window: // MARK: - Start execable code here... Playground execution failed: error: Execution was interrupted, reason: shared-library-event. The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation. * thread #1, queue = 'com.apple.main-thread' frame #0: 0x00007ff80002f931 libobjc.A.dylib`_mapStrHash(_NXMapTable*, void const*) + 73 frame #1: 0x00007ff80002fc7f libobjc.A.dylib`_NXMapMember(_NXMapTable*, void const*, void**) + 35 frame #2: 0x00007ff80003b7ae libobjc.A.dylib`getProtocol(char const*) + 41 frame #3: 0x00007ff8000428e6 libobjc.A.dylib`class_conformsToProtocol + 337 frame #4: 0x00007ff80004ab4e libobjc.A.dylib`-[NSObject conformsToProtocol:] + 47 frame #5: 0x0000000109c27951 UIKitCore`_UIFocusItemContainerIsScrollableContainer + 74 frame #6: 0x0000000109c28e38 UIKitCore`-[_UIFocusEnvironmentContainerTuple initWithOwningEnvironment:itemContainer:] + 194 frame #7: 0x0000000109c28fed UIKitCore`+[_UIFocusEnvironmentContainerTuple tupleWithOwningEnvironment:itemContainer:] + 70 frame #8: 0x0000000109c4f41e UIKitCore`_UIFocusRegionContainerFromEnvironmentAndContainer + 44 frame #9: 0x0000000109c27ed3 UIKitCore`_UIFocusItemContainerAddChildItemsInContextWithArguments + 1162 frame #10: 0x000000010a99c439 UIKitCore`-[UIView _searchForFocusRegionsInContext:] + 962 frame #11: 0x0000000109c6b37f UIKitCore`-[_UIFocusMapSnapshot addRegionsInContainer:] + 4583 frame #12: 0x0000000109c69740 UIKitCore`-[_UIFocusMapSnapshot _capture] + 456 frame #13: 0x0000000109c67fc5 UIKitCore`-[_UIFocusMapSnapshot _initWithSnapshotter:mapArea:searchArea:] + 628 frame #14: 0x0000000109c6cce2 UIKitCore`-[_UIFocusMapSnapshotter captureSnapshot] + 227 frame #15: 0x0000000109c5f450 UIKitCore`-[_UIFocusMap _inferredDefaultFocusItemInEnvironment:] + 147 frame #16: 0x0000000109c2b1cf UIKitCore`-[_UIFocusEnvironmentPreferenceEnumerationContext _inferPreferencesForEnvironment:] + 157 frame #17: 0x0000000109c2abbc UIKitCore`-[_UIFocusEnvironmentPreferenceEnumerationContext _resolvePreferredFocusEnvironments] + 118 frame #18: 0x0000000109c2ab12 UIKitCore`-[_UIFocusEnvironmentPreferenceEnumerationContext prefersNothingFocused] + 31 frame #19: 0x0000000109c2beeb UIKitCore`_enumeratePreferredFocusEnvironments + 198 frame #20: 0x0000000109c2c061 UIKitCore`_enumeratePreferredFocusEnvironments + 572 frame #21: 0x0000000109c2c061 UIKitCore`_enumeratePreferredFocusEnvironments + 572 frame #22: 0x0000000109c2c061 UIKitCore`_enumeratePreferredFocusEnvironments + 572 frame #23: 0x0000000109c2bd11 UIKitCore`-[_UIFocusEnvironmentPreferenceEnumerator enumeratePreferencesForEnvironment:usingBlock:] + 230 frame #24: 0x0000000109c2c747 UIKitCore`-[_UIDeepestPreferredEnvironmentSearch deepestPreferredFocusableItemForEnvironment:withRequest:] + 817 frame #25: 0x0000000109c95837 UIKitCore`-[UIFocusUpdateContext _updateDestinationItemIfNeeded] + 265 frame #26: 0x0000000109c95627 UIKitCore`-[UIFocusUpdateContext _destinationItemInfo] + 22 frame #27: 0x0000000109c95535 UIKitCore`-[UIFocusUpdateContext nextFocusedItem] + 24 frame #28: 0x0000000109c71ea6 UIKitCore`-[UIFocusSystem updateFocusIfNeeded] + 1347 frame #29: 0x0000000109c7608c UIKitCore`__43-[UIFocusSystem _updateFocusUpdateThrottle]_block_invoke + 34 frame #30: 0x000000010a94b971 UIKitCore`-[_UIAfterCACommitBlock run] + 57 frame #31: 0x000000010a94be71 UIKitCore`-[_UIAfterCACommitQueue flush] + 191 frame #32: 0x000000010a3926eb UIKitCore`_runAfterCACommitDeferredBlocks + 782 frame #33: 0x000000010a380fa2 UIKitCore`_cleanUpAfterCAFlushAndRunDeferredBlocks + 96 frame #34: 0x000000010a3b6be1 UIKitCore`_afterCACommitHandler + 58 frame #35: 0x00007ff8003b1c12 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 frame #36: 0x00007ff8003ac57f CoreFoundation`__CFRunLoopDoObservers + 515 frame #37: 0x00007ff8003acaa2 CoreFoundation`__CFRunLoopRun + 1121 frame #38: 0x00007ff8003ac264 CoreFoundation`CFRunLoopRunSpecific + 560 frame #39: 0x00007ff8003ad234 CoreFoundation`CFRunLoopRun + 40 frame #40: 0x00007ff83755a4e3 libswift_Concurrency.dylib`swift_task_asyncMainDrainQueueImpl() + 35 frame #41: 0x00007ff83755a4b4 libswift_Concurrency.dylib`swift_task_asyncMainDrainQueue + 52 frame #42: 0x00000001015d409f $__lldb_expr32`main at <unknown>:0 frame #43: 0x0000000100e25560 EnumeratedContactsCNContact`linkResources + 256 frame #44: 0x00007ff8003b2986 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 frame #45: 0x00007ff8003b2148 CoreFoundation`__CFRunLoopDoBlocks + 399 frame #46: 0x00007ff8003ace09 CoreFoundation`__CFRunLoopRun + 1992 frame #47: 0x00007ff8003ac264 CoreFoundation`CFRunLoopRunSpecific + 560 frame #48: 0x00007ff809b4024e GraphicsServices`GSEventRunModal + 139 frame #49: 0x000000010a3827bf UIKitCore`-[UIApplication _run] + 994 frame #50: 0x000000010a3875de UIKitCore`UIApplicationMain + 123 * frame #51: 0x0000000100e256c5 EnumeratedContactsCNContact`main + 357 frame #52: 0x0000000100fbb384 dyld_sim`start_sim + 10 frame #53: 0x000000010943341f dyld`start + 1903```
Replies
0
Boosts
1
Views
1.7k
Activity
Jun ’23
Enabling outgoing network connections in Swift Playgrounds app
I am trying to develop an App in Swift Playgrounds that will use the SwiftMQTT package. SwiftMQTT needs to open an outgoing network connection to connect the app to an MQTT server. To integrate the package, I wrote a basic manager class as an observable object. When I try to make a connection with this manager, Swift Playgrounds appears to block the connection. Searching around, I found that this was likely due to sandboxing but couldn't figure out how to fix it in Swift Playgrounds. To test this idea, I moved my manager class over to XTools and created a test app to make the connection. Initially, I got the same error. However, XTools let me make the needed sandbox setting on the Signing & Capabilities page of the app. Click/checkmarking "Outgoing Connections (Client)" under Network solved my problem there. I would still like to do this in Playgrounds but can't for the life of me figure out how to open up the sandbox. Can anybody point me there (or wave me off if this is currently impossible).
Replies
2
Boosts
0
Views
2.5k
Activity
Jun ’23
BLE Periodic Advertisement & Scanning
I'm trying to determine if Core Bluetooth, in the latest versions of iOS and iPadOS, supports scanning for periodic advertisements as defined in Bluetooth 5? If so, what configuration parameters are required for a peripheral device to successfully achieve recognizable periodic advertisements that will be discovered by iPhones/iPads? For instance, supported PHY settings or anything else? If iOS/iPadOs doesn’t support periodic advertising, is it on the roadmap? If so, when will it be available and which devices will be supported? Thanks.
Replies
3
Boosts
0
Views
1.9k
Activity
May ’23