[iPhone]UITableView loopt vast bij scrollen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 00:49
Ik ben bezig om een iPhone applicatie te maken, ik heb hier nog weinig ervaring mee, en loop nu vast op een bepaald stuk.

Het is de bedoeling dat er een RSS feed geladen wordt welke info toont in een UITableView, dit werkt, maar zosnel er in de UITableView gescrollt wordt loopt de hele applicatie vast, en helaas geeft het geen nuttige error informatie.

Dit is de errorinformatie die er komt wanneer de applicatie vastslaat:

code:
1
2
3
4
5
6
7
8
[Session started at 2009-07-14 14:14:17 +0200.]

[Session started at 2009-07-14 14:14:20 +0200.]
2009-07-16 15:03:31.605 Brandstof[904:20b] *** -[UITextEffectsWindow tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0xd2d990
2009-07-16 15:03:31.608 Brandstof[904:20b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UITextEffectsWindow tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0xd2d990'
2009-07-16 15:03:31.610 Brandstof[904:20b] Stack: (
allemaal nummers
)


Mijn code (het RSS gedeelte gestript), hij blijft namelijk ook vastlopen als het RSS gedeelte volledig is gestript.

NewsViewController.h
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@interface NewsViewController : UIViewController
<UITableViewDelegate, UITableViewDataSource> {
    IBOutlet UITableView * newsTable;
    UIActivityIndicatorView * activityIndicator;
    CGSize cellSize;
    NSXMLParser * rssParser;
    NSMutableArray * stories;
    
    // a temporary item; added to the "stories" array one at a time, and cleared for the next one
    NSMutableDictionary * item;
    
    // it parses through the document, from top to bottom...
    // we collect and cache each sub-element value, and then save each item to our array.
    // we use these to track each current item, until it's ready to be added to the "stories" array
    NSString * currentElement;
    NSMutableString * currentTitle, * currentDate, * currentSummary, * currentLink;
}

@end


NewsViewController.m
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#import "NewsViewController.h"


@implementation NewsViewController

- (void)awakeFromNib {
    [super awakeFromNib];
    
    if ([stories count] == 0) {
        //NSString * path = @"http://www.goedkooptanken.nu/nieuws/nieuws.rss";
        //[self parseXMLFileAtURL:path];
    }
    
    cellSize = CGSizeMake([newsTable bounds].size.width, 60);
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 5;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *MyIdentifier = @"MyIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
        //cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
    }
    
    // Set up the cell
    //int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];
    [cell setText:@"Hello"];
    
    return cell;
}

- (void)dealloc {
    [currentElement release];
    [rssParser release];
    [stories release];
    [item release];
    [currentTitle release];
    [currentDate release];
    [currentSummary release];
    [currentLink release];
    
    [super dealloc];
}


@end


En hier hoe de verbindingen zijn in de Interface builder

Afbeeldingslocatie: http://overig.indev.nl/uploads/ibuilder1.png

Afbeeldingslocatie: http://overig.indev.nl/uploads/ibuilder2.png

Iemand enig idee waarom de applicatie vastslaat bij het scrollen?

[ Voor 11% gewijzigd door ZpAz op 16-07-2009 15:27 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 22:29
Weet je zeker dat de NewsController het datasource template gebruikt?
Ik zie ook dat je gebruik maakt van sections, dat heeft volgens mij een andere functie nodig dan cellForRowAtIndexPath.

De volgende link heeft wat info over gebruik van UITableView en sections.

http://www.iphonedevsdk.c...ones-iphone-contacts.html

Edit:
Debug info is ook op te bekijken als je links boven naar debug mode gaat. Daar kun je een hele trace vanaf het entry-point van je app naar de code waar het fout gaat bekijken. Misschien als je die post, dat we wat meer info hebben.

[ Voor 23% gewijzigd door Depress op 14-07-2009 18:59 ]


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 00:49
Hallo Depress (en de rest ;) ),

Volgens mij heb ik juist geen sections, de method naam is namelijk: numbersOfRowsInSection, het aantal rijen van de sectie, standaard 1 sectie.

Ook heb ik build en debug gekozen deze keer, wat al wat meer informatie geeft, maar ik weet niet of dat is wat je bedoelt.

In ieder geval is dit de debug informatie:
Zie eerste post, nieuwe debug-informatie geplaatst.
Hier iemand met hetzelfde probleem klik, maar daar wordt ik helaas ook niet veel wijzer van.

Bovenstaande link opnieuw doorgelezen, en in hun geval kwam het doordat de controller UIViewController moest extendenden (met de UITableViewDataSource en Delegate protocollen) iets wat ik ook heb geprobeert, maar dit maakt geen verschil, en ik houd dezelfde error.

[ Voor 43% gewijzigd door ZpAz op 16-07-2009 15:28 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • 0 Henk 'm!

  • daniëlpunt
  • Registratie: Maart 2004
  • Niet online

daniëlpunt

monkey's gone to heaven

en wat als je autorelease gebruikt op de cell? dus op deze manier:

Objective-C:
1
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] autorelease];