stackiphone
stackiphone

Reputation: 1245

UITableview doubts

i am having an application which can share Notes to evernote,it works fine i can upload and download my Note to Evernote within the app,i have a Note title and Note subject,i uploaded the Notes to evernote viz UITableview controller.The Textlabel.text is the title for the note and detailtextlabel.text is the note subject.i only get the Notesubject correctly means ,if i have two notes in tableview with title,like this formate 1) title :firstitle ,notesubject :firstNotessubject 2)title :secondtitle ,notesubject :secondNotessubject,,then i press the upload button it uploads the notes to evernote,but the title remains firstitle only with notes,like this formate 1) title :firstitle ,notesubject :firstNotessubject 2)title :firsttitle ,notesubject :secondNotessubject.my code for uplode button is

-(IBAction)sendNoteEvernote:(id)sender{
 NSMutableString *strtitle = [[NSMutableString alloc] initWithString:@""]; 
    for (int t = 0; t<[appDelegate.indexArray count]; t++) { 
        NSString * aStringtitle = [[NSString alloc] initWithString:[appDelegate.indexArray objectAtIndex:t]] ;

    note.title =aStringtitle;
    }
        NSMutableString *str = [[NSMutableString alloc] initWithString:@"NOTES:"]; 
        for (int i = 0; i<[appDelegate.notesArray count]; i++) { 
            NSString * aString = [[NSString alloc] initWithString:[appDelegate.notesArray objectAtIndex:i]] ;
            NSString * ENML= [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">\n<en-note>%@",aString];
 ENML = [NSString stringWithFormat:@"%@%@", ENML, @"</en-note>"];
            NSLog(@"%@", ENML);

            // Adding the content & resources to the note
            [note setContent:ENML];
           // [note setTitle:aStringtitle];
            // [note setResources:resources];

            // Saving the note on the Evernote servers
            // Simple error management
            @try {
                [[eversingleton sharedInstance] createNote:note];
                _acteverbackup.hidden = YES;
                _actimageeverbackup.hidden =YES;
            }
            @catch (EDAMUserException * e) {
                _acteverbackup.hidden = YES;
                _actimageeverbackup.hidden =YES;
                NSString * errorMessage = [NSString stringWithFormat:@"Error saving note: error code %i", [e errorCode]];
                proAlertView *alert = [[proAlertView alloc]initWithTitle:@"Evernote" message:errorMessage delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil];
                [alert setBackgroundColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0] withStrokeColor:[UIColor colorWithHue:0.0 saturation:0.0 brightness:0.0 alpha:1.0]];
                [alert show];
                [alert release];        return;
            }

in the above code appdelegate.indexarray is the title and appdelegate.notearray is the Subject..my UItableview code look like this.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return[appDelegate.notesArray count];
}
/*-(UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypesForRowWithIndexPath:(NSIndexPath *)indexPath
 {

 return UITableViewCellAccessoryCheckmark;

 }*/

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSUInteger row = [indexPath row];
    NSString *CellIdentifier;
    CellIdentifier=[NSString stringWithFormat:@"cell %d",indexPath.row];


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];    
    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
        cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.detailTextLabel.numberOfLines = 0;
        UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bgCELL3@2X-1"]];
        [cell setBackgroundView:img];
        [img release];
        count++;
    }
    NSMutableString *strr=[[NSMutableString alloc]initWithString:[appDelegate.indexArray objectAtIndex:indexPath.section]];
    cell.textLabel.text =strr ;
    cell.textLabel.text = [appDelegate.indexArray objectAtIndex:row];
    cell.textLabel.font = [UIFont fontWithName:@"Georgia" size:14.0]; 
    cell.textLabel.textColor = [UIColor brownColor];


    //NSMutableString *notes=[[NSMutableString alloc]initWithString:[appDelegate.notesArray objectAtIndex:row]];
    //cell.detailTextLabel.text =notes;
    cell.detailTextLabel.font = [UIFont fontWithName:@"Georgia" size:14.0]; 
    cell.detailTextLabel.textColor = [UIColor darkGrayColor];
    cell.detailTextLabel.text = [appDelegate.notesArray objectAtIndex:row];
    //textView.text=notes;

    //[notes release];

    cell.backgroundColor=[UIColor clearColor];
    cell.accessoryType = UITableViewCellAccessoryNone;



    return cell;
}

whats the error in my code,please help me to do this. thanks in advance

Upvotes: 1

Views: 132

Answers (1)

Rok Jarc
Rok Jarc

Reputation: 18865

Try changing the line:

NSMutableString *strr = [[NSMutableString alloc] initWithString:[appDelegate.indexArray objectAtIndex:indexPath.section]];

to:

NSMutableString *strr = [[NSMutableString alloc] initWithString:[appDelegate.indexArray objectAtIndex: row]];

Also get rid of the:

NSUInteger row = [indexPath row];
NSString *CellIdentifier;
CellIdentifier = [NSString stringWithFormat:@"cell %d",indexPath.row];

simply use:

CellIdentifier = @"noteCellIdentifier";

This doesn't have anything to do with your question but it's what cell reusing is all about.

EDIT:

This part of code also looks suspitious:

for (int t = 0; t<[appDelegate.indexArray count]; t++) { 
    NSString * aStringtitle = [[NSString alloc] initWithString:[appDelegate.indexArray objectAtIndex:t]] ;
    note.title =aStringtitle;
}

It's not clear what you want to do but you'd probably want to move this to:

for (int i = 0; i<[appDelegate.notesArray count]; i++) { 
    NSString * aStringtitle = [[NSString alloc] initWithString:[appDelegate.indexArray objectAtIndex:i]];  //note: t changed to i
    note.title =aStringtitle;

    NSString * aString = [[NSString alloc] initWithString:[appDelegate.notesArray objectAtIndex:i]];
    NSString * ENML= [NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE en-note SYSTEM \"http://xml.evernote.com/pub/enml2.dtd\">\n<en-note>%@",aString];
    ENML = [NSString stringWithFormat:@"%@%@", ENML, @"</en-note>"];
    NSLog(@"%@", ENML);
    //....

Upvotes: 1

Related Questions