I was wondering how I would be able to export my Xcode app to Testflight for further testing. Anyone know how to do this?
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I have been working on an Xcode project in SwiftUI for some time now and all of a sudden this message (No exact matches in reference to static method 'buildExpression') started to pop up, when I ran the build. I tried cleaning the builds and this still has not worked. I am unable to figure out where this error is referring to so some help we be nice. Thanks!
This error ( no exact matches in reference to static method 'buildExpression' ) keeps occurring in my content view on the line that states .environmentObject(registrationViewModel).
Here is the ContentView code:
import SwiftUI
struct ContentView: View {
@StateObject var viewModel = ContentViewModel()
@StateObject var registrationViewModel = RegistrationViewModel()
var body: some View {
Group {
if viewModel.userSession == nil {
LoginView()
.environmentObject(registrationViewModel)
} else if let currentUser = viewModel.currentUser {
MainTabView(user: currentUser)
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Here is the RegistrationViewModel code:
import Foundation
class RegistrationViewModel: ObservableObject {
@Published var username = ""
@Published var email = ""
@Published var password = ""
func createUser() async throws {
try await AuthService.shared.createUser(email: email, password: password, username: username)
}
}
Here is some more info about the error:
Candidate requires that 'some View' conform to 'CustomizableToolbarContent' (requirement specified as 'Content' : 'CustomizableToolbarContent')
Candidate requires that 'some View' conform to 'CustomizableToolbarContent' (requirement specified as 'Content' : 'CustomizableToolbarContent')
Candidate requires that 'some View' conform to 'TableRowContent' (requirement specified as 'Content' : 'TableRowContent')
Candidate requires that 'some View' conform to 'Commands' (requirement specified as 'Content' : 'Commands')
I have been trying to figure out this error for 2 days! Please help!
Thanks
For some reason, every time I'm accessing a view populated with posts and fetching posts, my app has like a 5-8 second hang time. I don't know whats causing this issue, and I have been dealing with this for 3 days.
`func fetchPosts(completion: @escaping (Result<[PostWithUser], Error>) -> Void) {
if !cachedPosts.isEmpty {
completion(.success(self.cachedPosts))
return
}
postsRef.order(by: "timestamp", descending: true).getDocuments { [weak self] snapshot, error in
guard let self = self else { return }
if let error = error {
completion(.failure(error))
return
}
guard let documents = snapshot?.documents else {
completion(.success([]))
return
}
let group = DispatchGroup()
var postsWithUsers: [PostWithUser] = []
DispatchQueue.global(qos: .userInitiated).async {
for document in documents {
group.enter()
let data = document.data()
guard let userId = data["userId"] as? String,
let parentId = data["parentId"] as? String,
let groupId = data["groupId"] as? String,
let text = data["text"] as? String,
let isPinned = data["isPinned"] as? Bool,
let imageUrl = data["imageUrl"] as? String,
let videoUrl = data["videoUrl"] as? String,
let timestamp = data["timestamp"] as? Timestamp,
let views = data["views"] as? Int else {
group.leave()
continue
}
let post = Post(id: document.documentID, userId: userId, parentId: parentId, groupId: groupId, text: text, imageUrl: imageUrl, videoUrl: videoUrl, timestamp: timestamp.dateValue(), isPinned: isPinned, likedBy: [], views: views)
self.usersRef.document(userId).getDocument { userDocument, error in
defer { group.leave() }
if let userDocument = userDocument, let userData = userDocument.data() {
let user = User(
id: userId,
username: userData["username"] as? String ?? "",
bio: userData["bio"] as? String ?? "",
profilePictureUrl: userData["profileImageUrl"] as? String ?? "",
privateProfile: userData["privateProfile"] as? Bool ?? false,
privateFollowerList: userData["privateFollowerList"] as? Bool ?? false,
privateFollowingList: userData["privateFollowingList"] as? Bool ?? false,
privateReplies: userData["privateReplies"] as? Bool ?? false,
privateLikes: userData["privateLikes"] as? Bool ?? false
)
let postWithUser = PostWithUser(post: post, user: user)
DispatchQueue.main.async {
postsWithUsers.append(postWithUser)
}
} else {
print("Failed to fetch user data for userId: \(userId), error: \(String(describing: error))")
}
}
}
group.notify(queue: .main) {
self.cachedPosts = postsWithUsers
completion(.success(postsWithUsers))
}
}
}
}`
`
func fetchPosts() {
PostService.shared.fetchPosts { result in
switch result {
case .success(let posts):
DispatchQueue.main.async {
self.posts = posts
}
case .failure(let error):
print("Failed to fetch posts: \(error)")
}
}
}
func refreshPosts() {
PostService.shared.refreshPosts { result in
switch result {
case .success(let posts):
DispatchQueue.main.async {
self.posts = posts
}
case .failure(let error):
print("Failed to fetch posts: \(error)")
}
}
}