JTAppleCalendar icon indicating copy to clipboard operation
JTAppleCalendar copied to clipboard

View dependend protocols should be marked with @MainActor

Open BastianKusserow opened this issue 1 year ago • 2 comments

(Required) Version Number: 8.0.5

Description

I've got a ViewController that conforms to the JTACMonthViewDelegate protocol. With strict concurrency warnings turned on, the compiler complains that "Main-actor isolated instance method cannot be used to satisfy nonisolated protocol requirement` since the ViewController is obviously marked @MainActor. I think all the view dependent delegate protocols (and probably also the data source protocols) should be marked @MainActor, since they are probably called from the main actor anyways. This is also how UICollectionViewDelegate and DataSources are marked.

Steps To Reproduce

Conform a ViewController to a delegate like JTACMonthViewDelegate with swift strict concurrency warnings set to complete.

Expected Behavior

The compiler shouldn't complain about nonisolated protocol requirements.

BastianKusserow avatar Nov 08 '23 14:11 BastianKusserow

hmmm... if i put mainactorinto this library, i think this will raise the minimum OS requirement? if yes, then is there another way around this? I am unfamiliar with mainactor

patchthecode avatar Nov 08 '23 15:11 patchthecode

Hmh, might work if we gate this with #if swift(<5.4) or something like that. I can try this out and submit a PR if you want to.

BastianKusserow avatar Nov 08 '23 17:11 BastianKusserow