Ios 如何创建包装UIOffset结构的NSValue?
我正在尝试更改我的文本阴影位置。要做到这一点,需要传入一个封装UIOffset结构的Ios 如何创建包装UIOffset结构的NSValue?,ios,cocoa-touch,Ios,Cocoa Touch,我正在尝试更改我的文本阴影位置。要做到这一点,需要传入一个封装UIOffset结构的 UITextAttributeTextShadowOffset Key to the offset used for the text shadow in a text attributes dictionary. The corresponding value is an instance of NSValue wrapping a UIOffset struct. Available
UITextAttributeTextShadowOffset
Key to the offset used for the text shadow in a text attributes dictionary.
The corresponding value is an instance of NSValue wrapping a UIOffset struct.
Available in iOS 5.0 and later.
Declared in UIStringDrawing.h.
问题是UIOffset结构没有这样的包装方法-只需搜索文档即可。我看到很多人使用这个不存在的函数
[NSValue valueWithUIOffset:UIOffsetMake(0, 1)]
当我试图运行它时,它崩溃了。我不明白有多少示例代码可以运行它。请查看,这是一个类别,除了其他有用的内容外,还添加了您所使用的
-[NSValue valueWithUIOffset:
方法。请查看,这是一个类别,其中添加了-[NSValue WithUIOffset:]
您所追求的方法。它可能不在文档中,但它存在,并且可以工作:
NSValue *uiOffsetValue = [NSValue valueWithUIOffset:UIOffsetMake(0, 1)];
NSLog(@"%@", uiOffsetValue);
// outputs "UIOffset: {0, 1}"
你是什么意思,当你试图运行它时它崩溃了?如果该方法不存在,那么它甚至不应该编译。如果您的应用程序已编译但崩溃,那么问题一定是其他原因。文档中可能没有,但它存在,并且可以工作:
NSValue *uiOffsetValue = [NSValue valueWithUIOffset:UIOffsetMake(0, 1)];
NSLog(@"%@", uiOffsetValue);
// outputs "UIOffset: {0, 1}"
你是什么意思,当你试图运行它时它崩溃了?如果该方法不存在,那么它甚至不应该编译。如果您的应用程序已编译但崩溃,那么问题一定是其他原因。Xcode仅警告不要将未知消息传递给对象。当未知消息传递给对象时,Objective-C将在运行时崩溃。真的吗?我有一个普通的Xcode设置,如果我尝试使用一个未知的方法,我会得到一个“选择器'foo:'的未知类方法”,它甚至不会编译。实际上,在进一步测试之后。它只在我的iOS 4设备上崩溃。它在我的iOS 5设备上工作。这是可以理解的,因为设置阴影位置仅在5上受支持。但是关于为什么valueWithUIOffset不在文档中还有一个未解之谜。它在文档中-请参见此处:它还说“在iOS 5.0及更高版本中可用”,因此解释了它在iOS 4设备上崩溃的原因。Xcode仅警告不要将未知消息传递给对象。当未知消息传递给对象时,Objective-C将在运行时崩溃。真的吗?我有一个普通的Xcode设置,如果我尝试使用一个未知的方法,我会得到一个“选择器'foo:'的未知类方法”,它甚至不会编译。实际上,在进一步测试之后。它只在我的iOS 4设备上崩溃。它在我的iOS 5设备上工作。这是可以理解的,因为设置阴影位置仅在5上受支持。但是关于为什么valueWithUIOffset不在文档中还有一个未解之谜。它在文档中-请参见:它还说“在iOS 5.0及更高版本中可用”,这就解释了为什么它会在iOS 4设备上崩溃。