UITableview сомнения - PullRequest
       0

UITableview сомнения

1 голос
/ 29 марта 2012

У меня есть приложение, которое может делиться заметками с evernote, оно работает нормально, я могу загружать и загружать свои заметки в Evernote в приложении, у меня есть заголовок заметки и тема заметки, я загрузил заметки в evernote viz UITableview контроллер.Textlabel.text - это заголовок для заметки, а detailtextlabel.text - это тема заметки. Я правильно получаю только объект Notes, если у меня есть две заметки в табличном представлении с заголовком, как этот формат 1) title: firstitle, notesubject: firstNotessubject 2) title: secondtitle, notesubject: secondNotessubject ,, затем я нажимаю кнопку загрузки, чтобы загрузить заметки в evernote, но заголовок остается firstitle только с заметками, как этот формат 1) title: firstitle, notesubject: firstNotessubject 2) title: firsttitle,notesubject: код secondNotessubject.my для кнопки загрузки -

-(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;
            }

, в приведенном выше коде appdelegate.indexarray - это заголовок, а appdelegate.notearray - это Subject..my UItableview, который выглядит следующим образом.

- (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;
}

что за ошибка в моем соде, пожалуйста, помогите мне сделать это.заранее спасибо

1 Ответ

1 голос
/ 29 марта 2012

Попробуйте изменить строку:

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

до:

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

Также избавьтесь от:

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

просто используйте:

CellIdentifier = @"noteCellIdentifier";

Это не имеет ничего общего с вашим вопросом, но в этом и заключается суть повторного использования клетки.

EDIT:

Эта часть кода также выглядит подозрительно:

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

Непонятно, что вы хотите сделать, но вы, вероятно, захотите переместить это в:

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);
    //....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...