TableView Cell Section , image aus Documents Folder und Sqlite Id

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • TableView Cell Section , image aus Documents Folder und Sqlite Id

    Hallo Leute , ich suche wieder mal nach einer Problem lösung. Vielleicht kann ja wer helfen, DANKE !

    Ich
    möchte in meiner "

    Quellcode

    1. (UITableViewCell *)tableView:(UITableView
    2. *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    " ein Image
    in jeder Spalte anzeigen. ( Kundenbezogene images )
    Das problem dabei ist die Images befinden sich im Documents Folder und haben alle die
    Bezeichnung image_100.png, image_101.png ..... Grund der Bezeichnung ist das ich eine
    premiumId aus meine SQLite DB bekommen die so einzubinden wäre NSString ... customer.premiumId
    Ich hab das ganze ja schon gemacht und es funktioniert bestens. zb. eine Homepage URL sieht
    so aus :

    Quellcode

    1. http://testseite.dom/premiumpages/page_%@.html
    ", self.customer.premiumId)...

    und jetzt möchte ich das system auch in meiner TableView benutzen um zu jedem Kunden auch das Richtige Logo (Image) zu bekommen.
    danke.

    Quellcode

    1. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    2. NSString* cellIdentifier = @"CustomerCell";
    3. CustomerTableViewCell *cell = (CustomerTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    4. if(cell == nil){
    5. cell = [[CustomerTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    6. }
    7. Customer *customer;
    8. if([self sortType] == kCustomerSortTypeDistance)
    9. restaurant = [[self.customer objectForKey:@"All"] objectAtIndex:indexPath.row];
    10. else
    11. customer = [[self.customer objectForKey:[Alphabet letterAtIndex:(indexPath.section - sectionIndexBuffer)]] objectAtIndex:indexPath.row];
    12. cell.name.text = customer.name;
    13. [cell.name sizeToFit];
    14. cell.address.text = customer.address;
    15. cell.suburb.text = customer.suburb;
    16. cell.isSortedByDistance = (self.sortType == kCustomerSortTypeDistance);
    17. //// ich denke da muss das rein ? ...NSStrin.. customer.premiumId <- gibt mir die image Id
    18. cell.myImageView.image = [UIImage imageNamed:@"cell_kunden_logo120.png"]; //// cell test Photo Statisch!
    19. cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    20. if([LocationRepository latitude] != 0 && [LocationRepository longitude] != 0)
    21. {
    22. if(customer.distance > 50){
    23. cell.distance.text = [NSString stringWithFormat:@"%1.0fkm", customer.distance];
    24. }
    25. else{
    26. cell.distance.text = [NSString stringWithFormat:@"%1.2fkm", customer.distance];
    27. }
    28. }
    29. else
    30. cell.distance.text = @"";
    31. return cell;
    32. }
    Alles anzeigen
  • Was ist falsch an meinem code ?

    mein code gibt keine fehler aus aber dennoch auch keine images :(

    das ist daran falsch?

    Quellcode

    1. NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    2. NSString *documentPath = [searchPaths objectAtIndex:0];
    3. NSString *imagePath = [NSString stringWithFormat:@"%@/cell_kunden_logo%@.png", documentPath, customer.premiumId];
    4. cell.myImageView.image = [UIImage imageNamed:imagePath];
  • die premiumId gibt mir eigentlich nur eine nummer aus, ---> Kundennummer aus der Mysql / Server seitig und SQLite im app. das heisst dann also ..../image_%@.png bla... %@ = zb 120 = .../image_120.png und genau so hab ich sie im Documents Folder. Der code oben ist ok und passt voll, muss ich nur mehr ein if ... else irgendwas , so denk ich mir für ein Default logo einbauen.

    :)
  • Ausgabe Prbleme

    jetzt hab ich es so weit das die daten von der DB übergeben werden und der Paht passt, siehe log. nur wird immer noch kein image gezeigt und jede zweite ausgabe fehlt, hat wer eine idee ?

    logausgabe:

    Quellcode

    1. Applications/ABFA02E0-49D0-4608-B1B3-9A4E4BEC8587/Documents
    2. 2012-01-04 21:04:54.650 GFNSW[5888:15803] /Users/xxx/Library/Application Support/iPhone Simulator/5.0/Applications/ABFA02E0-49D0-4608-B1B3-9A4E4BEC8587/Documents/image_125.png
    3. 2012-01-04 21:04:55.003 GFNSW[5888:15803] /Users/xxxx/Library/Application Support/iPhone Simulator/5.0/Applications/ABFA02E0-49D0-4608-B1B3-9A4E4BEC8587/Documents
    4. 2012-01-04 21:04:55.003 GFNSW[5888:15803] /Users/xxxx/Library/Application Support/iPhone Simulator/5.0/Applications/ABFA02E0-49D0-4608-B1B3-9A4E4BEC8587/Documents/image_109.png
    5. 2012-01-04 21:04:55.403 GFNSW[5888:15803] /Users/xxx/Library/Application Support/iPhone Simulator/5.0/Applications/ABFA02E0-49D0-4608-B1B3-9A4E4BEC8587/Documents
    6. 2012-01-04 21:04:55.403 GFNSW[5888:15803] /Users/xxx/Library/Application Support/iPhone Simulator/5.0/Applications/ABFA02E0-49D0-4608-B1B3-9A4E4BEC8587/Documents/image_104.png
    7. 2012-01-04 21:04:56.666 GFNSW[5888:15803] /Users/xxx/Library/Application Support/iPhone Simulator/5.0/Applications/ABFA02E0-49D0-4608-B1B3-9A4E4BEC8587/Documents
    8. 2012-01-04 21:04:56.666 GFNSW[5888:15803] /Users/xxx/Library/Application Support/iPhone Simulator/5.0/Applications/ABFA02E0-49D0-4608-B1B3-9A4E4BEC8587/Documents/image_103.png
  • Ok, der Pfad wir offensichtlich korrekt zusammengebaut. Aber es ist klar, dass da nichts bei raus kommt (hätte mir auch gleich auffallen können), denn die Methode imageNamed: erwartet nur einen Dateinamen und keinen kompletten Pfad und sucht daher auch nur nach Bildern im Main Bundle. Du musst einfach mit einer anderen Methode Dein Image erzeugen, z.B. mit imageWithContentsOfFile:.

    Michael
  • problem behoben !

    so leute für alle die in diesem fall auch daneben stehen, die oben
    genannten probleme haben sich mit dem einbau des Default logos erübigt
    ;)

    so sieht das resultat in meinem fall aus, es funktioniert bestens und sehr schnell.

    Quellcode

    1. NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    2. NSString *documentPath = [searchPaths objectAtIndex:0];
    3. NSString *imagePath = [NSString stringWithFormat:@"%@/image_%@.png", documentPath, customer.premium2];
    4. cell.myImageView.image = [UIImage imageNamed:imagePath];
    5. if ([[NSFileManager defaultManager] fileExistsAtPath:imagePath])
    6. cell.myImageView.image = [UIImage imageWithContentsOfFile:imagePath];
    7. else
    8. cell.myImageView.image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"blockbtn" ofType:@"png" inDirectory:@"/"]];
    9. return cell;
    10. NSLog(@"%@",documentPath);
    11. NSLog(@"%@",imagePath);
    Alles anzeigen


    danke für jegliche Hilfe !!