我在 UITableViewCell 中有一个 UIView ,当用户点击“更少/更多”按钮时需要更改其高度
我的代码是
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewAutomaticDimension;
}
Run Code Online (Sandbox Code Playgroud) objective-c uitableview ios ios-autolayout uitableviewautomaticdimension
我刚刚将Firebase存储更新到5.0.0,它看起来metadata.downloadURL()已经不再被识别了.(Value of type 'StorageMetadata' has no member 'downloadURL')
虽然在查看文档后仍应该可用:
该项目已经清理和重建.
我错过了什么吗?
在我的项目中,我遇到了一种情况,当我需要使用后台队列来创建 AVPlayerItem (我在setupTrackModels函数中创建)时。我想在getTracks函数中执行此操作,并且此方法还必须有一个完成处理程序,我需要在主线程中调用它,但我无法以任何方式使它们成为朋友。我收到编译器错误:Escaping closure captures non-escaping parameter 'completion'也许有人可以告诉我如何执行此操作或显示另一种方法。
我想做这样的事情:
var content: [URL] = []
var tracks: [TrackModelProtocol] = []
private func getTracks(completion: () -> ()) {
DispatchQueue.global(qos: .background).async { //Error: Escaping closure captures non-escaping parameter 'completion'
self.tracks = self.setupTrackModels(content: self.content)
DispatchQueue.main.async { //Error: Escaping closure captures non-escaping parameter 'completion'
completion()
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我想使用这样的函数:
getTracks {
tableView.reloadData()
//or something else
}
Run Code Online (Sandbox Code Playgroud)
我不想tableView.reloadData()在 DispatchQueue.main 中使用。getTracks块,因为我多次调用并且我想在它的完成块中实现不同的逻辑
我正在尝试将我managedObjectContext的传递给下一个控制器。我UIWindow在 appDelegate 文件中生成了一个实例,因为我需要获取我的备用控制器。但是,Xcode 说我的UIWindow实例为零。
这个 id 我的代码:
lazy var managedObjectContext: NSManagedObjectContext = persistentContainer.viewContext
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let tabController = window!.rootViewController as! UITabBarController
if let tabViewControllers = tabController.viewControllers {
let navController = tabViewControllers[0] as! UINavigationController
let controller = navController.viewControllers.first as! CurrentLocationViewController
controller.managedObjectContext = managedObjectContext
}
return true
}
Run Code Online (Sandbox Code Playgroud)
这有点奇怪。如何解决这个问题?提前致谢。
我只有 Swift 的基础知识。我想var dataSource:[[CustomModel?]]?变成[CustomModel].
我尝试了以下方法
我收到错误
无法将类型“[FlattenSequence<[[CustomModel?]]>.Element]”(又名“Array<Optional< CustomModel >>”)的值转换为预期参数类型“[CustomModel]”
我看到dimsBackgroundDuringPresentationiOS SDK 12 现在已弃用。此属性的替代品是什么?
我有一个水平滚动的 LazyHStack。如何设置初始滚动位置?
在 UIKit 中,我将创建一个水平滚动的 UICollectionView 并设置collectionView.contentOffset来设置初始滚动位置,但我不确定如何在 SwiftUI 中执行此操作。
struct ContentView: View {
var body: some View {
ScrollView(.horizontal) {
LazyHStack {
ForEach(1...100, id: \.self) { i in
Text("\(i)")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为 POST 请求创建一个结构。据我所知,结构符合类型Codable别名,但我不断收到错误消息
参数类型 'RegisterUserRequest.Type' 不符合预期的类型 'Encodable'" 将其作为参数传递给我的
JSONEncoder.
我试图只符合Encodable, 编写建议的必需 init() 但似乎没有任何效果。
这就是我的 Struct 的样子
struct RegisterUserRequest: Codable {
var firstName: String
var lastName: String
var email: String
var phoneNumber: String
var dateOfBirth: String
enum CodingKeys: String, CodingKey {
case firstName = "first_name"
case lastName = "last_name"
case email
case phoneNumber = "phone"
case dateOfBirth = "date_of_birth"
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误
import UIKit
class CustomPrettyView: UIView {
override class func awakeFromNib() {
layer.cornerRadius = 20
}
}
Run Code Online (Sandbox Code Playgroud)
为什么它不起作用?
我最近更新了当前版本的 GoogleSignIn,但找不到解决我面临的这个问题的方法。我收到的错误是:“GIDSignInResult”类型的值没有成员“身份验证”
func googleSignInAction(){
guard let clientID = FirebaseApp.app()?.options.clientID else { return }
let config = GIDConfiguration(clientID: clientID)
GIDSignIn.sharedInstance.signIn(withPresenting: self) { user, error in
if let error = error {
print("There is an error signing the user in ==> \(error)")
return
}
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return }
let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
Auth.auth().signIn(with: credential) { authResult, error in
if error != nil {
print(error)
} else {
self.email = …Run Code Online (Sandbox Code Playgroud) swift ×9
ios ×8
xcode ×2
appdelegate ×1
arrays ×1
cocoapods ×1
codable ×1
encodable ×1
firebase ×1
ios13 ×1
networking ×1
objective-c ×1
scrollview ×1
swift4 ×1
swiftui ×1
uitableview ×1
uitableviewautomaticdimension ×1
uiwindow ×1