我已将代码迁移到Swift 4.2。并且当在设备上编译运行时,一切工作正常(编译并运行)。但是,当我尝试为TestFlight存档时,它给我一个结构“只分配了一个协议”的错误“ FormFormcoding与协议'ParameterEncoding'的冗余一致性”
import Foundation
import Moya
import Alamofire
public struct FormEncoding: ParameterEncoding { // Error is here!
public static var `default`: ParameterEncoding {
return FormEncoding()
}
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
...
}
在错误窗格中,它仅提及该协议的单个一致性:
“'FormEncoding'在此处声明符合协议'ParameterEncoding'”
我可以想象存档/发布的构建设置是不同的,并且包括一些其他的优化/检查。但我在这里看不到实际错误。
非常感谢您提出解决建议。
答案 0 :(得分:1)
这似乎是由于Moya和Alamofire之间的冲突造成的。 Moya重新定义(类型别名)ParameterEncoding:
public typealias ParameterEncoding = Alamofire.ParameterEncoding
所以,如果我注释掉
import Foundation
//import Moya
import Alamofire
然后生效(存档)
答案 1 :(得分:0)
您还可以通过使用A = np.random.uniform(size=(1000,120))
B = np.random.uniform(size=(1000,120,3))
A*B # ValueError: operands could not be broadcast together with shapes (1000,120) (1000,120,3)
np.shape(np.dot(A,B)) # (1000,1000,3)
np.shape(A@B) # (1000,1000,3)
np.tensordot(A,B,axes=1) # ValueError: shape-mismatch for sum
A[..., None]*B # works, THANKS!