Przeglądaj źródła

Fix compile warning and test errors for mac

onevcat 1 rok temu
rodzic
commit
584b0ff1f6

+ 6 - 4
Sources/Extensions/NSButton+Kingfisher.swift

@@ -28,6 +28,7 @@
 
 import AppKit
 
+@MainActor
 extension KingfisherWrapper where Base: NSButton {
 
     // MARK: Setting Image
@@ -315,12 +316,13 @@ extension KingfisherWrapper where Base: NSButton {
 
 
 // MARK: - Associated Object
-private var taskIdentifierKey: Void?
-private var imageTaskKey: Void?
+@MainActor private var taskIdentifierKey: Void?
+@MainActor private var imageTaskKey: Void?
 
-private var alternateTaskIdentifierKey: Void?
-private var alternateImageTaskKey: Void?
+@MainActor private var alternateTaskIdentifierKey: Void?
+@MainActor private var alternateImageTaskKey: Void?
 
+@MainActor
 extension KingfisherWrapper where Base: NSButton {
 
     // MARK: Properties

+ 2 - 2
Sources/Utility/DisplayLink.swift

@@ -71,12 +71,12 @@ extension NSView {
 
 #if swift(>=5.9)
 @available(macOS 14.0, *)
-extension CADisplayLink: DisplayLinkCompatible {
+extension CADisplayLink: DisplayLinkCompatible, @unchecked Sendable {
     var preferredFramesPerSecond: NSInteger { return 0 }
 }
 #endif
 
-class DisplayLink: DisplayLinkCompatible {
+final class DisplayLink: DisplayLinkCompatible {
     private var link: CVDisplayLink?
     private var target: Any?
     private var selector: Selector?

+ 8 - 1
Tests/KingfisherTests/NSButtonExtensionTests.swift

@@ -62,6 +62,7 @@ class NSButtonExtensionTests: XCTestCase {
         super.tearDown()
     }
 
+    @MainActor
     func testDownloadAndSetImage() {
         let exp = expectation(description: #function)
         let url = testURLs[0]
@@ -84,6 +85,7 @@ class NSButtonExtensionTests: XCTestCase {
         waitForExpectations(timeout: 3, handler: nil)
     }
 
+    @MainActor
     func testDownloadAndSetAlternateImage() {
         let exp = expectation(description: #function)
         let url = testURLs[0]
@@ -105,7 +107,8 @@ class NSButtonExtensionTests: XCTestCase {
         }
         waitForExpectations(timeout: 5, handler: nil)
     }
-
+    
+    @MainActor
     func testCancelImageTask() {
         let exp = expectation(description: #function)
         let url = testURLs[0]
@@ -123,6 +126,7 @@ class NSButtonExtensionTests: XCTestCase {
         waitForExpectations(timeout: 3, handler: nil)
     }
 
+    @MainActor
     func testCancelAlternateImageTask() {
         let exp = expectation(description: #function)
         let url = testURLs[0]
@@ -140,6 +144,7 @@ class NSButtonExtensionTests: XCTestCase {
         waitForExpectations(timeout: 3, handler: nil)
     }
     
+    @MainActor
     func testSettingNilURL() {
         let exp = expectation(description: #function)
         let url: URL? = nil
@@ -158,6 +163,7 @@ class NSButtonExtensionTests: XCTestCase {
         waitForExpectations(timeout: 3, handler: nil)
     }
     
+    @MainActor
     func testSettingNonWorkingImageWithFailureImage() {
         let expectation = self.expectation(description: "wait for downloading image")
         let url = testURLs[0]
@@ -173,6 +179,7 @@ class NSButtonExtensionTests: XCTestCase {
         XCTAssertEqual(testImage, button.image)
     }
     
+    @MainActor
     func testSettingNonWorkingAlternateImageWithFailureImage() {
         let expectation = self.expectation(description: "wait for downloading image")
         let url = testURLs[0]