| 

.NET C# Java Javascript Exception

1
Hallo.

Ich hab ein Webservice geschrieben das Daten aus der Datenbank holt und diese Daten mittels JSON an das Iphone übergibt.

Meine Webmethode:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public string Raumklasse()
{
return RaumklassenHelper.Raumklasse();
}


Meine RaumklassenHelper.cs
public class RaumklassenHelper
{
internal static string Raumklasse()
{
List<object> raumKlassenObject = new List<object>();

using (SqlConnection con = new SqlConnection(@"Data Source=Localhost\SQLEXPRESS;Initial Catalog=BOOK-IT-V2;Integrated Security=true;"))
using (SqlCommand cmd = new SqlCommand(@"SELECT BEZEICHNUNG FROM RAUMKLASSE", con))
{
con.Open();
using (SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
if (rdr["BEZEICHNUNG"] != DBNull.Value)
{
raumKlassenObject.Add(new {
Name=rdr["BEZEICHNUNG"].ToString()});
}
}
}
}

return new JavaScriptSerializer().Serialize(raumKlassenObject.ToArray());
}
}

In Xcode:
- (void)viewDidLoad
{
[super viewDidLoad];
[self sendRequest:@""];
dic = [NSJSONSerialization JSONObjectWithData:result options:kNilOptions error:nil];
self.array = [dic objectForKey:@"d"];
NSLog(@"%@", self.array);
}


Soweit funktioniert alles wunderbar. Mein Output sieht dann folgendermaßen aus:

[{"Name":"Telepresenzraum"},{"Name":"Besprechungsraum"},{"Name":"Videokonferenzraum"},{"Name":"IT-Schulungsraum"},{"Name":"Konferenzraum"}]


Wenn ich jetzt aber
self.array = [[dic objectForKey:@"d"] objectForKey:@"Name"];

ausführen will um nur die Values: Telepresenzraum, Besprechungsraum usw. zu erhalten, bekomme ich einen Fehler:

[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x6a4ccb0.

Ich glaube das irgendetwas vom Webservice falsch übergeben wird, aber ich komm einfach nicht drauf. Vielleicht könnt ihr mir helfen?

Vielen Dank
05.06.2012
Bashud 1 1
1 Antwort
0
Du greifst mit einem Schlüssel ("Name") auf ein Array zu, das wird so nicht funktionieren.
Versuch mal:

NSArray *anArray = [dic objectForKey:@"d"];
NSDictionary *anElement = [anArray objectAtIndex:0];
NSString *aValue = [anElement objectForKey:@"Name"];
09.06.2012
puls200 3,8k 7

Stelle deine .net-Frage jetzt!