2012-05-22 45 views
4

在的ObjectiveC給出一個包含字符串的NSArray弗雷德我能說的檢索objectAtIndex?羅塞塔石頭說,使用方法ValueAt,但返回IntPtr的MonoTouch如何從NSArray中的C#

var i = fred.ValueAt(5); 

但你留下了怎樣的IntPtrNSString指針轉換。

回答

5

我也遇到了同樣的情況。 您可以轉換的IntPtr與新的NSString(一個NSString),如:

string strValue = new NSString(nsArr.ValueAt(1)); 

它可能爲時已晚,你,但也許這將幫助其他人。

+0

我想你的建議,但我得到的錯誤「'Foundation.NSNumber.NSNumber(System.IntPtr )'由於其保護級別而無法訪問「。 在檢查Xamarin的NSNumber綁定時,我可以看到它是受保護的:protected internal NSNumber(IntPtr handle); – jaker

+0

你可以使用NSNumber.ValueFromPointer ... –

1
string strValue = NSString.FromHandle(nsArr.ValueAt(1)); 
+0

雖然這段代碼可能回答這個問題,但最好包含一些上下文,解釋它是如何工作的,並描述何時使用它。從長遠來看,僅有代碼的答案是沒有用的。 – ryanyuyu

5

通過IntPtr去感覺像一個壞主意。相反,只要你知道你想獲得該項目的類型,你可以使用以下命令:

int index = 0; 
NSString str = myNsArr.GetItem<NSString>(index);