Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

iOS 26 will remove ALAssetsLibrary. When do you expect to provide a compatible version?

オープン
#1,356 コメント 3 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
ios, swift
領域
mobile-dev

調査の方向性

Start by locating the PromiseKit code containing the UIImagePickerController promise and its ALAssetsLibrary usage. Research the iOS 26-compatible replacement and determine how the image-data path should preserve the existing promise behavior; done means the affected flow builds and works without ALAssetsLibrary on supported iOS versions.

索引モデルが issue の本文から書いたものです。

説明

public func promise(_ vc: UIImagePickerController, animated: Bool = false, completion: (() -> Void)? = nil) -> Promise<NSData> {
    let proxy = UIImagePickerControllerProxy()
    vc.delegate = proxy

    present(vc, animated: animated, completion: completion)

    return proxy.promise.then(on: nil) { info -> Promise<NSData> in
    #if swift(>=4.2)
        let url = info[.referenceURL] as! URL
    #else
        let url = info[UIImagePickerControllerReferenceURL] as! URL
    #endif
        
        return Promise { seal in
            ALAssetsLibrary().asset(for: url, resultBlock: { asset in
                let N = Int(asset!.defaultRepresentation().size())
                let bytes = UnsafeMutablePointer<UInt8>.allocate(capacity: N)
                var error: NSError?
                asset!.defaultRepresentation().getBytes(bytes, fromOffset: 0, length: N, error: &error)

                if let error = error {
                    seal.reject(error)
                } else {
                    seal.fulfill(NSData(bytesNoCopy: bytes, length: N))
                }
            }, failureBlock: { seal.reject($0!) } )
        }
    }.ensure {
        self.dismiss(animated: animated, completion: nil)
    }
}

}

主要言語
Swift
スター
14.2k
フォーク
1.5k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

mxcl/PromiseKit のほかの issue

mxcl/PromiseKit の issue をすべて見る

似ている issue

Swift の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。