我有一个String
扩展:
func iconName(identifier: String) -> String
{
return self.library()[identifier]
}
我在 UIImage
扩展中执行此操作:
let icon = String.iconName("myiconname")
var iconSize = icon.size(withAttributes: someAttributes)
我收到错误:
Value of type '(String) -> String' has no member 'size'
我尝试过多种不同的方式来切换此问题,但每次都会遇到相同(或类似)的错误。
问题是它确实有成员大小。我可以毫无错误地执行此操作:
var myString = "testing"
myString.size(withAttributes: attributes)
有人知道“(String) -> String”类型的值发生了什么
吗?
最佳答案
方法
size(withAttributes:)
是NSString
中的实例方法,而不是String
参见Docs
因此,您可以将方法的签名更改为
func iconName(identifier: String) -> NSString {....}
//
你不应该使用
let icon = String.iconName("myiconname") // here String is a generic type
as 扩展被指定与类似的对象一起使用
let icon = "someStringValue".iconName("myiconname")
关于ios - 无法使用属性访问.size : from String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49956910/