Hallo,
ich habe in meinem Programm eine horizontal verlaufende Scrollview, in die schrittweise neue UIButtons eingefügt werden.
Genauer gesagt, werden immer 2 Buttons übereinander eingefügt und mit einer Action verlinkt.
In der Action wird dann (über ein ActionSheet) geklärt, ob eine Aktivität gestartet oder der soeben aufgerufene Eintrag entfernt werden soll.
Beim Löschen müssen natürlich beide Buttons wieder weg und die Lücke muss geschlossen werden. Daher dachte ich, am einfachsten wäre ein komplettes Neuerstellen aller Buttons.
Dazu aber muss ich die Scrollview zunächst leeren und da ist das Problem:
Nach dem Leeren der View und Erstellen der verbleibenden Buttons kommt der Absturz mit der Meldung:
-[NSCFString release]: message sent to deallocated instance 0x4b7cac0
Dummerweise ist dies nach Abarbeitung der Action und ich komme beim Debuggen dort nicht mehr hin.
Wahrscheinlich mache ich Blödsinn beim Leeren oder beim Einfügen.
Hier ist der Code für das Leeren der View
Hier werden die Buttons erzeugt:
Alles anzeigen
Kann *bitte* jemand den Finger auf den Fehler halten ?
ich habe in meinem Programm eine horizontal verlaufende Scrollview, in die schrittweise neue UIButtons eingefügt werden.
Genauer gesagt, werden immer 2 Buttons übereinander eingefügt und mit einer Action verlinkt.
In der Action wird dann (über ein ActionSheet) geklärt, ob eine Aktivität gestartet oder der soeben aufgerufene Eintrag entfernt werden soll.
Beim Löschen müssen natürlich beide Buttons wieder weg und die Lücke muss geschlossen werden. Daher dachte ich, am einfachsten wäre ein komplettes Neuerstellen aller Buttons.
Dazu aber muss ich die Scrollview zunächst leeren und da ist das Problem:
Nach dem Leeren der View und Erstellen der verbleibenden Buttons kommt der Absturz mit der Meldung:
-[NSCFString release]: message sent to deallocated instance 0x4b7cac0
Dummerweise ist dies nach Abarbeitung der Action und ich komme beim Debuggen dort nicht mehr hin.
Wahrscheinlich mache ich Blödsinn beim Leeren oder beim Einfügen.
Hier ist der Code für das Leeren der View
Hier werden die Buttons erzeugt:
Quellcode
- -(void)makeGalleryButtonWithGalleryRec:(GalleryRec *)gallRec LeftPos:(int)leftPos buttonWidth:(int)buttonWidth isUpperButton:(BOOL)isUpper {
- UIButton *newButton = [UIButton buttonWithType:UIButtonTypeCustom];
- int oben = (isUpper) ? 8 : 26;
- NSString *titel = (isUpper) ? [XmlData getGalleryTitel:gallRec.typID] : [NSString stringWithString:gallRec.titel];
- newButton.frame = CGRectMake(leftPos, oben, buttonWidth, 19);
- [newButton setTag:gallRec.dbIndex];
- [newButton setTitle:titel forState:UIControlStateNormal];
- newButton.autoresizesSubviews = YES;
- newButton.titleLabel.adjustsFontSizeToFitWidth = YES;
- [newButton setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
- [newButton addTarget:vController action:@selector(clickedGalleryButton:forEvent:) forControlEvents:UIControlEventTouchUpInside];
- [vController.viewGallery addSubview:newButton];
- }
- -(void)fillGallery {
- [self emptyGallery];
- Gallery *myGallery = [Gallery sharedInstance];
- int leftPos = 120, breite = 120;
- for (GalleryRec *gRec in myGallery.galleryArray) {
- [self makeGalleryButtonWithGalleryRec:gRec LeftPos:leftPos buttonWidth:breite isUpperButton:YES];
- [self makeGalleryButtonWithGalleryRec:gRec LeftPos:leftPos buttonWidth:breite isUpperButton:NO];
- leftPos += (breite + 10);
- }
- [vController.viewGallery setContentSize:CGSizeMake(leftPos + 80, vController.viewGallery.frame.size.height)];
- [vController.viewGallery setShowsHorizontalScrollIndicator:YES];
- [vController.viewGallery setDirectionalLockEnabled:NO];
- [vController.viewGallery scrollRectToVisible:CGRectMake(leftPos, 1, leftPos+ 10, 20) animated:[[BIS_Common sharedInstance] shouldAnimate]];
- }
Kann *bitte* jemand den Finger auf den Fehler halten ?