Objective c 为什么UIFont支持可变复制选择器?

Objective c 为什么UIFont支持可变复制选择器?,objective-c,Objective C,我们有UIMutableFont还是什么 如果我想要相同的字体,但尺寸稍大一点怎么办 更新:我测试过,它导致运行时错误。然后问题就变了。为什么是运行时错误而不是编译错误 [self.Title.font mutableCopy] 将从 文件(重点): 对于采用 NSMutableCopying协议如果没有异常,则引发异常 mutableCopyWithZone:的实现 参考文献: NSMutableCopying声明了一种方法,mutablecopyithzone:,但可变复制是 通常使用方便

我们有UIMutableFont还是什么

如果我想要相同的字体,但尺寸稍大一点怎么办

更新:我测试过,它导致运行时错误。然后问题就变了。为什么是运行时错误而不是编译错误

[self.Title.font mutableCopy]
将从 文件(重点):

对于采用
NSMutableCopying
协议如果没有异常,则引发异常
mutableCopyWithZone:
的实现

参考文献:

NSMutableCopying
声明了一种方法,
mutablecopyithzone:
,但可变复制是 通常使用方便的方法mutableCopy调用。
mutableCopy
方法是为所有
NSObjects
定义的,只需调用 mutableCopyWithZone:使用默认区域

所以

将始终编译,但如果对象未实现,则在运行时失败
mutableCopyWithZone:

对于
copy
vs
copyWithZone:

从 文件(重点):

对于采用
NSMutableCopying
协议如果没有异常,则引发异常
mutableCopyWithZone:
的实现

参考文献:

NSMutableCopying
声明了一种方法,
mutablecopyithzone:
,但可变复制是 通常使用方便的方法mutableCopy调用。
mutableCopy
方法是为所有
NSObjects
定义的,只需调用 mutableCopyWithZone:使用默认区域

所以

将始终编译,但如果对象未实现,则在运行时失败
mutableCopyWithZone:


对于
copy
vs
copyWithZone:

UIFont是不可变的,我们没有UIMutableFont选项。它不支持mutableCopy选择器,因为它不符合NSMutableCopy

但是,若要更改字体对象的大小,可以使用fontWithSize:API。 例如:

//creating font
UIFont*someFont=[UIFont-fontWithName:@“font-name”大小:15.0f]

UIFont*biggerFont=[someFont-fontWithSize:17.0f]

不幸的是,您必须为不同的大小保留单独的字体对象。 我认为最好的方法是保持字体宏如下:

#define HEL_NEUE(xx)                    [UIFont fontWithName:@"HelveticaNeue" size:xx]

您可以在任何地方使用它,只需相应地传递所需的大小。

UIFont是不可变的,我们没有UIMutableFont选项。它不支持mutableCopy选择器,因为它不符合NSMutableCopy

但是,若要更改字体对象的大小,可以使用fontWithSize:API。 例如:

//creating font
UIFont*someFont=[UIFont-fontWithName:@“font-name”大小:15.0f]

UIFont*biggerFont=[someFont-fontWithSize:17.0f]

不幸的是,您必须为不同的大小保留单独的字体对象。 我认为最好的方法是保持字体宏如下:

#define HEL_NEUE(xx)                    [UIFont fontWithName:@"HelveticaNeue" size:xx]

您可以在任何地方使用它,只需相应地传递所需的大小。

没有。没有实际上是屏蔽方法的宏。如有必要,只需在
UIFont
上使用
+[UIFont-helveticaneufortfithize:][/code>等方法进行分类即可。不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不。如有必要,只需在
UIFont
上使用
+[UIFont-helveticaneufortfithize:][/code>等方法进行分类即可。