Gönner-Abo

Ab CHF 5.– im Monat

👉🏼 Wir benötigen deine Unterstützung! Unterstütze macprime mit einem freiwilligen Gönner-Abo und mache die Zukunft unseres unabhängigen Apple-Mediums aus der Schweiz mit möglich.

macprime unterstützen

xcode WLAN Spots anzeigen

 

xcodeneuling

Ja, die tabelle funktioniert. Hatte noch mit ein paar problemen mit views zu kämpfen. Weil ich die tabelle zuerst programmatisch erstellt habe, konnte ich sie im interface builder nicht finden und dadurch war die tabelle immer im vordergrund. Das habe ich gelöst, indem ich eine tabelle mit dem builder erstellt habe. Diese funktioniert auch mit dem dataArray. Das Array ist nicht leer, es enhält die drei daten @”SSID”… kein NSDictionary.

 

xcodeneuling

So nach etwas sucherei und herumspielns geht der scanner :) habe den code aus diesem beispiel übernommen:

http://code.google.com/p/iphone-wireless/issues/detail?id=20#c22

mit der CFShow kann ich die SSID in der debugger Console anzeigen.

[networks setObject:[scan_networks objectAtIndex: i] forKey:[[scan_networks objectAtIndex: i] objectForKey:@"BSSID"]];
CFShow([[scan_networks objectAtIndex: i] objectForKey:@"SSID_STR"]);

Das sieht jetzt schon sehr gut aus. Wie kann ich diese SSID in die Tabelle einfügen? Meine Tabelle sieht so aus:

// Tabelle

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    //return 2;
    return [dataArray count];
    
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @"Cell";
        
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    
    // Configure the cell...
    cell.textLabel.text = [dataArray objectAtIndex:indexPath.row];
    
    return cell;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    if (section == 0)
        return @"Gefundene WLANs:";
    else {
        return @"Keine WLANs gefunden.";
    }

}

//tabelle ende

Profilfoto von flexo

flexo

Indem du dataArray füllst mit dem Suchresultat? Auf der Seite hat es sogar ein Beispiel wie man dies mit einer for-Schleife macht. Wobei er kein NSArray verwendet sondern ein NSMutableDictionary.

Wollen dann ein Printscreen sehen wenns funktioniert :-)

Tipp: Für eine bessere Übersicht im Code kann man #pragma mark - verwenden. z.B. : #pragma mark Meine Tabelle

 

xcodeneuling

ja… ich weiss, dass ich die gefundenen wlans in das dataArray hinzufügen muss. Aber irgendwie will das nicht klappen. Also ich habe aus meinem code das alte dataArray auskommentiert, das die “gefakten” SSIDs anzeigte. Das neue dataArray sieht jetzt so aus:

dataArray = ([[scan_networks objectAtIndex: i] objectForKey:@"SSID_STR"]);

Spuckt keine errors raus, application startet aber tabelle bleibt leer.

/edit: Hmm ich müsste das array ja auch noch leeren, wenn ich mich bewege und andere wlans scanne oder? /edit die 2te: Müsste es nicht ein NSMutableArray sein?

(Bearbeitet am 27. August 2010 um 15:22 Uhr von xcodeneuling)

Anmelden um neue Antworten zu verfassen

Allegra Leser! Nur angemeldete Nutzer können bei diesem Beitrag Antworten hinterlassen. Jetzt kostenlos registrieren oder mit bestehendem Benutzerprofil anmelden.