小编Tar*_*agi的帖子

SWIFT TASK CONTINUATION MISUSE:泄露了它的继续 - 对于委托?

我正在尝试扩展我classasync/await功能,但在运行时控制台中出现错误:

SWIFT TASK CONTINUATION MISUSE: query(_:) leaked its continuation!
Run Code Online (Sandbox Code Playgroud)

下面是class我正在尝试添加使用委托的延续:

SWIFT TASK CONTINUATION MISUSE: query(_:) leaked its continuation!
Run Code Online (Sandbox Code Playgroud)

这是我如何使用它:

class LocalSearch: NSObject, MKLocalSearchCompleterDelegate {
    private let completer: MKLocalSearchCompleter
    private var completionContinuation: CheckedContinuation<[MKLocalSearchCompletion], Error>?

    init() {
        completer = MKLocalSearchCompleter()
        super.init()
        completer.delegate = self
    }

    func query(_ value: String) async throws -> [MKLocalSearchCompletion] {
        try await withCheckedThrowingContinuation { continuation in
            completionContinuation = continuation

            guard !value.isEmpty else {
                completionContinuation?.resume(returning: [])
                completionContinuation = nil
                return
            }

            completer.queryFragment = …
Run Code Online (Sandbox Code Playgroud)

concurrency swift

5
推荐指数
2
解决办法
202
查看次数

iOS 15 - UICollectionView 崩溃 - 尝试使用在 -collectionView:cellForItemAtIndexPath: 内部创建的注册使单元格出列:

这是错误:


线程 1:“尝试使用在 -collectionView:cellForItemAtIndexPath: 或 UICollectionViewDiffableDataSource 单元格提供程序内创建的注册使单元格出列。每次请求单元格时创建新的注册将阻止重用,并导致创建的单元格在内存中保持不可访问状态在集合视图的生命周期内。应预先创建注册并重复使用。注册:<UICollectionViewCellRegistration:0x60000135b300>”


这是导致错误的文件:

import UIKit

class PetExplorerViewController: UICollectionViewController {
  // MARK: - Properties
  var adoptions = Set<Pet>()
  
  lazy var dataSource = makeDataSource()

  // MARK: - Types
  enum Section: Int, CaseIterable, Hashable {
    case availablePets
    case adoptedPets
  }
  typealias DataSource = UICollectionViewDiffableDataSource<Section, Item>

  // MARK: - Life Cycle
  override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.title = "Pet Explorer"
    configureLayout()
    applyInitialSnapshots()
  }

  // MARK: - Functions
  
  func configureLayout() {
    let configuration = UICollectionLayoutListConfiguration(appearance: .grouped)
    collectionView.collectionViewLayout = UICollectionViewCompositionalLayout.list(using: configuration) …
Run Code Online (Sandbox Code Playgroud)

ios uicollectionview swift

4
推荐指数
1
解决办法
2945
查看次数

标签 统计

swift ×2

concurrency ×1

ios ×1

uicollectionview ×1