Turn on strict concurrency. Fix some issues.

This commit is contained in:
Brent Simmons 2024-03-19 19:55:55 -07:00
parent b2d3128b2d
commit 186deebf9b
7 changed files with 24 additions and 21 deletions

View File

@ -12,9 +12,9 @@ import Account
final class ExtensionFeedAddRequestFile: NSObject, NSFilePresenter {
private static var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "extensionFeedAddRequestFile")
private static let log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "extensionFeedAddRequestFile")
private static var filePath: String = {
private static let filePath: String = {
let appGroup = Bundle.main.object(forInfoDictionaryKey: "AppGroup") as! String
let containerURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroup)
return containerURL!.appendingPathComponent("extension_feed_add_request.plist").path

View File

@ -38,20 +38,23 @@ final class ArticleIconSchemeHandler: NSObject, WKURLSchemeHandler {
return
}
let iconView = IconView(frame: CGRect(x: 0, y: 0, width: 48, height: 48))
iconView.iconImage = iconImage
let renderedImage = iconView.asImage()
guard let data = renderedImage.dataRepresentation() else {
urlSchemeTask.didFailWithError(URLError(.fileDoesNotExist))
return
}
let headerFields = ["Cache-Control": "no-cache"]
if let response = HTTPURLResponse(url: url, statusCode: 200, httpVersion: nil, headerFields: headerFields) {
urlSchemeTask.didReceive(response)
urlSchemeTask.didReceive(data)
urlSchemeTask.didFinish()
Task { @MainActor in
let iconView = IconView(frame: CGRect(x: 0, y: 0, width: 48, height: 48))
iconView.iconImage = iconImage
let renderedImage = iconView.asImage()
guard let data = renderedImage.dataRepresentation() else {
urlSchemeTask.didFailWithError(URLError(.fileDoesNotExist))
return
}
let headerFields = ["Cache-Control": "no-cache"]
if let response = HTTPURLResponse(url: url, statusCode: 200, httpVersion: nil, headerFields: headerFields) {
urlSchemeTask.didReceive(response)
urlSchemeTask.didReceive(data)
urlSchemeTask.didFinish()
}
}
}

View File

@ -15,7 +15,7 @@ struct ErrorHandler {
private static var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "Application")
public static func present(_ viewController: UIViewController) -> (Error) -> () {
return { [weak viewController] error in
return { @MainActor [weak viewController] error in
if UIApplication.shared.applicationState == .active {
viewController?.presentError(error)
} else {

View File

@ -9,7 +9,7 @@
import UIKit
import RSCore
struct FeedTableViewSectionHeaderLayout {
@MainActor struct FeedTableViewSectionHeaderLayout {
private static let labelMarginRight = CGFloat(integerLiteral: 8)
private static let unreadCountMarginRight = CGFloat(integerLiteral: 16)

View File

@ -15,7 +15,7 @@ enum KeyboardType: String {
case detail = "DetailKeyboardShortcuts"
}
class KeyboardManager {
@MainActor final class KeyboardManager {
private(set) var _keyCommands: [UIKeyCommand]
var keyCommands: [UIKeyCommand] {

View File

@ -8,7 +8,7 @@
import UIKit
struct ArticleThemeImporter {
@MainActor struct ArticleThemeImporter {
static func importTheme(controller: UIViewController, filename: String) throws {
let theme = try ArticleTheme(path: filename, isAppTheme: false)

View File

@ -44,7 +44,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 17.0
//SDKROOT = macosx
SWIFT_SWIFT3_OBJC_INFERENCE = Off
SWIFT_VERSION = 5.10
SWIFT_STRICT_CONCURRENCY = targeted
SWIFT_STRICT_CONCURRENCY = complete
// https://forums.swift.org/t/swift-packages-in-multiple-targets-results-in-this-will-result-in-duplication-of-library-code-errors/34892/33
DISABLE_DIAMOND_PROBLEM_DIAGNOSTIC = YES