2009-12-06 18 views
5

¿Cómo insertar elementos en el objeto NSArray en C# (Monotouch)? No encuentro el método apropiado para hacerlo? En el lado de Objective-C, hay un constructor llamado "initWithObjects" pero no lo encuentro en el lado C#.Uso de NSArray con Monotouch

pom

Respuesta

5

Lamento responder su pregunta con una pregunta, pero ¿está seguro de que desea crear un NSArray?

Lo pregunto porque MonoTouch hace algo de trabajo entre bastidores para que no tenga que lidiar con NSArray.

Si usted va a the MonoTouch API Design page y hace una búsqueda en la página de "NSArray", se encuentra esta:

lugar de tratar con NSString y NSArray el tiempo de ejecución en lugar expone estos como C# cuerdas y fuertemente matrices tipadas en toda la API.

En otras palabras, a menos que tenga un motivo específico para hacerlo, no tiene que meterse con NSArray.

Pero, si hace tienen una razón, o si es su preferencia, a continuación, la respuesta de Jason es correcta:

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

La única cosa que me gustaría añadir es que, si usted es un objetivo dev -C MonoTouch y dando una oportunidad, que está acostumbrado a esto:

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

la diferencia es la "nula" al final de la versión de Objective-C. NSArray de MonoTouch no tiene este mismo requisito. Usted simplemente le pasa los objetos que desea que contenga, y felizmente lo hace. No se requiere nulo de terminación :)

Espero que esto ayude ...

+0

Gracias por traer los esfuerzos internos de MonoTouch a mi atención. No lo sabía. – Pompair

1

Parece que este método estático es lo que quiere:

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

usados ​​como esto:

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

Eso no es insertar, eso es crear objetos CON. – Sneakyness

+0

Esto era realmente lo que quería, simplemente había formulado mi pregunta equivocada. – Pompair

+0

Sneakyness: Basado en su pregunta, sonaba como si quisiera que la forma MonoTouch llamara a 'initWithObjects'. Pompair: podría marcar el mío como aceptado :) – Jason

2

no estoy usando MonoTouch - pero si usted está buscando manipular un NSArray, querrás usar su primo, NSMutableArray.

+1

Esto también se aplica a NSDictionary, ya que también existe NSMutableDictionary. Solo para tu información. – Sneakyness