Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从UICollectionElementKindSection.Header转换为NSString?_C#_Ios_Xamarin.ios_Xamarin_Uicollectionview - Fatal编程技术网

C# 如何从UICollectionElementKindSection.Header转换为NSString?

C# 如何从UICollectionElementKindSection.Header转换为NSString?,c#,ios,xamarin.ios,xamarin,uicollectionview,C#,Ios,Xamarin.ios,Xamarin,Uicollectionview,我用的是Xamarin.iOS。如何将UICollectionElementKindSection.Header转换为NSString 错误CS1503:参数#1'无法将UIKit.UICollectionElementKindSection'表达式转换为'Foundation.NSString'类型(CS1503) 我尝试了以下方法: UICollectionElementKindSection.Header.ToString(); (NSString)UICollectionElementK

我用的是Xamarin.iOS。如何将
UICollectionElementKindSection.Header
转换为
NSString

错误CS1503:参数
#1'无法将
UIKit.UICollectionElementKindSection'表达式转换为'Foundation.NSString'类型(CS1503)

我尝试了以下方法:

UICollectionElementKindSection.Header.ToString();
(NSString)UICollectionElementKindSection.Header;
(string)UICollectionElementKindSection.Header;

每次我收到生成错误。

(NSString)UICollectionElementKindSection.Header.ToString()
不再抛出生成错误。我的应用程序仍然无法工作,但这是出于另一个原因。

对于类型安全性
UICollectionElementKindSectionHeader
(和其他值)映射到枚举,
UICollectionElementKindSectionKey
。这使得代码完成变得更加容易(在IDE中),并消除代码中潜在的打字错误

将枚举值转换为
字符串(然后再转换为
NSString
)是可能的-但这不会创建与ObjC应用程序使用的相同的
NSString
常量(甚至更少,因为苹果有时使用指针,而不是字符串内容来进行常量比较)

如果需要使用不使用枚举的API,但需要该常量,则可以执行以下操作:

IntPtr uikit = Dlfcn.dlopen (Constants.UIKitLibrary, 0);
NSString header = Dlfcn.GetStringConstant (uikit, "UICollectionElementKindSectionHeader");

注意:如果这是Xamarin.iOS.dll的API部分,请告诉我们。我们将公开常量或提供一个接受枚举的重载。

请显示您当前的“转换”代码。我添加了一些示例。这与@MickyDuncan有什么关系?因为它是Xamarin。@测试您的问题解决了吗?如果是,请回答您自己的问题。谢谢您的回答。基本上,我是在尝试复制。代码:CollectionView.GetLayoutAttributesforSupplementalElement(UICollectionElementKindSection.Header,indexPath)。这是API的一部分吗?