在的ObjectiveC給出一個包含字符串的NSArray弗雷德我能說的檢索objectAtIndex?羅塞塔石頭說,使用方法ValueAt
,但返回IntPtr
。的MonoTouch如何從NSArray中的C#
var i = fred.ValueAt(5);
但你留下了怎樣的IntPtr
到NSString
指針轉換。
在的ObjectiveC給出一個包含字符串的NSArray弗雷德我能說的檢索objectAtIndex?羅塞塔石頭說,使用方法ValueAt
,但返回IntPtr
。的MonoTouch如何從NSArray中的C#
var i = fred.ValueAt(5);
但你留下了怎樣的IntPtr
到NSString
指針轉換。
我也遇到了同樣的情況。 您可以轉換的IntPtr與新的NSString(一個NSString),如:
string strValue = new NSString(nsArr.ValueAt(1));
它可能爲時已晚,你,但也許這將幫助其他人。
string strValue = NSString.FromHandle(nsArr.ValueAt(1));
雖然這段代碼可能回答這個問題,但最好包含一些上下文,解釋它是如何工作的,並描述何時使用它。從長遠來看,僅有代碼的答案是沒有用的。 – ryanyuyu
通過IntPtr去感覺像一個壞主意。相反,只要你知道你想獲得該項目的類型,你可以使用以下命令:
int index = 0;
NSString str = myNsArr.GetItem<NSString>(index);
我想你的建議,但我得到的錯誤「'Foundation.NSNumber.NSNumber(System.IntPtr )'由於其保護級別而無法訪問「。 在檢查Xamarin的NSNumber綁定時,我可以看到它是受保護的:protected internal NSNumber(IntPtr handle); – jaker
你可以使用NSNumber.ValueFromPointer ... –