首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果使用静态调用(不是期望的行为),SwiftLint分析器将删除导入。

如果使用静态调用(不是期望的行为),SwiftLint分析器将删除导入。
EN

Stack Overflow用户
提问于 2022-07-11 06:38:38
回答 1查看 207关注 0票数 1

在我的项目中,我使用SwiftLint分析器,为了删除所有未使用的导入,我使用以下行

代码语言:javascript
复制
xcodebuild -workspace lintanalize.xcworkspace -scheme MY_SCHEME -configuration Debug > xcodebuild.log
swiftlint analyze --fix --compiler-log-path xcodebuild.log

它确实有效,分析器知道如何删除未使用的导入,但是问题是,它错误地删除了那些只有静态调用的导入,例如:

代码语言:javascript
复制
import PhotosUI

class PermissionPhotos {
    func request(_ callback: @escaping (PermissionStatus) -> Void) {
        PHPhotoLibrary.requestAuthorization(for: .readWrite) { ... }
    }
}

在本例中,我使用PHPhotoLibrary静态方法调用requestAuthorization,因此分析器将删除import PhotosUI,因为它认为静态调用没有使用此导入。

有办法解决吗?

UPD

我还注意到,同样的行为与params有关,例如

代码语言:javascript
复制
import PhotosUI

class PermissionPhotos {
    func request(myvalue: PHPhotoLibrary) { ... }
}

在本例中,PHPhotoLibrary将使用param,因此分析器将忽略这一点,并将删除import PhotosUI,看起来分析器只看到以下对象的实际定义

代码语言:javascript
复制
let myobj = PHPhotoLibrary()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-20 01:49:21

您的swiftlint.yml文件可用于进行一些规则弯曲修改/自定义。有关未使用的导入- https://realm.github.io/SwiftLint/unused_import.html的规则,请参阅此页面,并检查Default configuration部分。

我最好的选择是你应该打开require_explicit_imports

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72934586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档