2009-12-06 57 views
5

如何將項目插入到C#(Monotouch)中的NSArray對象?我沒有找到合適的方法來做到這一點?在Objective-C方面,有一個名爲「initWithObjects」的構造函數,但我在C#方面沒有找到它。使用NSArray與Monotouch

POM

回答

5

不好意思回答你的問題,但你確定要創建一個NSArray嗎?

我問,因爲MonoTouch在幕後做了一些工作,所以你不必處理NSArray。

如果你去the MonoTouch API Design page和「NSArray的」做一個頁內搜索,你會發現這一點:

而不是處理的NSString和NSArray的的運行,而不是公開這些爲C#字符串和強烈在整個API中鍵入數組。

換句話說,除非你有特定的理由,否則你不必惹惱NSArray。

但是,如果你有一個理由,或者如果它是你的偏好,然後傑森的回答是正確的:

NSArray someArray = NSArray.FromNSObjects(thingOne, thingTwo, thingThree); 

我想補充一點的是,如果你是一個目標-C開發,並給予MonoTouch的一個嘗試,你已經習慣了這一點:

NSArray *someArray = [NSArray arrayWithObjects:obj1, obj2, obj3, nil]; 

的區別是「無」在Objective-C的版本的結束。 MonoTouch的NSArray沒有這個相同的要求。您只需將它想要包含的對象傳遞給它,並且它樂於這樣做。沒有終止空要求:)

希望這會有所幫助...

+0

感謝MonoTouch的內部努力。我不知道。 – Pompair 2009-12-12 10:40:46

1

它看起來像這樣的靜態方法是你想要什麼:

public static NSArray FromNSObjects (params NSObject[] items); 

像這樣來使用:

NSArray arr = NSArray.FromNSObjects(obj1, obj2, obj3); 
+0

這不是插入,這是創建WITH對象。 – Sneakyness 2009-12-12 04:24:31

+0

這實際上是我想要的,我剛剛提出了錯誤的問題。 – Pompair 2009-12-12 10:39:07

+0

Sneakyness:基於他的問題,聽起來他想用MonoTouch的方式來調用'initWithObjects'。 Pompair:你可以將我的標記爲接受:) – Jason 2009-12-12 15:14:01

2

我不使用MonoTouch的 - 但如果你希望操縱一個NSArray,你會想要使用它的表親,NSMutableArray。

+1

這也適用於NSDictionary,因爲也有NSMutableDictionary。只是FYI。 – Sneakyness 2009-12-12 04:25:03