我在框架项目中遇到了一个奇怪的问题。当我尝试在我的框架中调用一个函数时,Swift 3编译器警告我未使用的结果,即使我在框架中用@discardableResult
标记了该函数
这是我的代码
SampleFramework.swift
项目
cocoa touch framework
文件
import Foundation
@discardableResult
public func keychainPerform(key:String) -> String{
print("success");
return "aaa";
}
ViewController.swift
swift项目中的 single view application
文件
import UIKit
import SampleFramework
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
SampleFramework.keychainPerform(key: "asd") // Warning: result of call is unused
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我用其他框架检查过这个场景,但是@discardableResult
对所有这些框架都做得很好,所以请帮我找出我做错了什么?
答案 0 :(得分:0)
我偶然发现了Xcode 12 / Swift 5.3中的同一问题。
我认为这是编译器中有关接口文件缓存的错误。
如果您以前创建的函数没有_02
属性,则编译器显然不会在添加后选择它,除非您进行完全重建,即强制清理构建文件夹和/或删除{{1 }}。