Skip to content

Commit c98323c

Browse files
Getting started crash fix (#9)
* fiexed crash
1 parent 9b14fe5 commit c98323c

File tree

5 files changed

+35
-13
lines changed

5 files changed

+35
-13
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>PreviewsEnabled</key>
6+
<false/>
7+
</dict>
8+
</plist>

getting-started/getting-started.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>IDEDidComputeMac32BitWarning</key>
6+
<true/>
7+
</dict>
8+
</plist>

getting-started/getting-started/SceneDelegate.swift

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,11 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
2626
}()
2727

2828
var window: UIWindow?
29-
3029
var chatProvider: PubNubChatProvider?
3130
var defaultChannelId = "Default"
3231

3332
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
34-
3533
guard let windowScene = (scene as? UIWindowScene) else { return }
36-
let window = UIWindow(windowScene: windowScene)
3734

3835
// Enables PubNub logging to the Console
3936
PubNub.log.levels = [.all]
@@ -46,12 +43,16 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
4643
)
4744

4845
// Preloads dummy data
49-
preloadData(provider)
50-
51-
// Assigns to SceneDelegate for future use
52-
chatProvider = provider
46+
preloadData(provider) { [weak self] in
47+
self?.chatProvider = provider
48+
self?.setupRootView(windowScene: windowScene)
49+
}
50+
} else {
51+
setupRootView(windowScene: windowScene)
5352
}
54-
53+
}
54+
55+
func setupRootView(windowScene: UIWindowScene) {
5556
// Creates the default ChannelList and MemberList component view models
5657
guard let channelListViewModel = chatProvider?.senderMembershipsChanneListComponentViewModel(),
5758
let messageListViewModel = try? chatProvider?.messageListComponentViewModel(pubnubChannelId: defaultChannelId) else {
@@ -68,12 +69,13 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
6869
]
6970

7071
// Sets the component as the root view controller
72+
let window = UIWindow(windowScene: windowScene)
7173
window.rootViewController = navigation
7274
self.window = window
7375
window.makeKeyAndVisible()
7476
}
7577

76-
func preloadData(_ chatProvider: PubNubChatProvider) {
78+
func preloadData(_ chatProvider: PubNubChatProvider, completion: @escaping () -> Void) {
7779
// Creates a user object with uuid
7880
let user = PubNubChatUser(
7981
id: chatProvider.pubnubConfig.uuid,
@@ -96,7 +98,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
9698
chatProvider.pubnubProvider.subscribe(.init(channels: [defaultChannelId], withPresence: true))
9799

98100
// Fills the database with the user, channel, and memberships data
99-
chatProvider.dataProvider.load(members: [membership])
101+
chatProvider.dataProvider.load(members: [membership], completion: completion)
100102
}
101103
}
102104

getting-started/getting-started/ViewController.swift

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@
88
import UIKit
99

1010
class ViewController: UIViewController {
11-
1211
override func viewDidLoad() {
1312
super.viewDidLoad()
1413
// Do any additional setup after loading the view.
1514
}
16-
17-
1815
}
1916

0 commit comments

Comments
 (0)