2013-10-13 2 views
1

Я пытаюсь заменить объект в массиве, заменив его текстом, возвращаемым из представления предупреждения.Извлечение пути индекса из представления таблицы

до сих пор у меня есть:

int selected = indexPath.row; 

и для моего метода alertview делегата.

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ 
    if (alertView.tag == 1) { 
     [myMutableArray replaceObjectAtIndex:selected withObject:[[alertView textFieldAtIndex:0] text]]; 
     [_tableView reloadData]; 
    } 
} 

я получаю сообщение об ошибке в

Несовместимых целочисленный для преобразования указателя присвоения 'NSInteger *' (он же 'длинных *') из 'NSInteger' (ака 'длинного')

+0

Это все ваш код? Где вы инициализируете NSMutableArray? Пожалуйста, напишите весь ваш код, если это возможно. – wigging

+0

Пожалуйста, отметьте ответ, если это поможет вам выяснить ваш вопрос. – wigging

ответ

0

Без зная, как выглядит остальная часть вашего кода, вы можете попробовать это в файле ViewController.m. Он устанавливает текст метки и заменяет объект в изменяемом массиве текстом из окна предупреждения, когда нажата кнопка «ОК».

#import "ViewController.h" 

@interface ViewController() <UIAlertViewDelegate> 

@property (strong,nonatomic) NSMutableArray *mutArray; 
@property (weak,nonatomic) IBOutlet UILabel *label; 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSArray *array = @[@"item1",@"item2",@"item3"]; 
    self.mutArray = [[NSMutableArray alloc] init]; 
    self.mutArray = [array mutableCopy]; 
} 

- (IBAction)showAlert:(id)sender { 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"My Alert Example" 
                message:@"message here" 
                delegate:self 
              cancelButtonTitle:@"Cancel" 
              otherButtonTitles:@"OK",nil]; 

    alert.alertViewStyle = UIAlertViewStylePlainTextInput; 

    [alert show]; 
} 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 

    int selected = 1; 

    if (buttonIndex != alertView.cancelButtonIndex) { 
     NSLog(@"ok button"); 
     UITextField *textField = [alertView textFieldAtIndex:0]; 
     self.label.text = textField.text; 
     [self.mutArray replaceObjectAtIndex:selected withObject:textField.text]; 
     NSLog(@"mutArray is %@",self.mutArray); 
    } else { 
     NSLog(@"cancel button"); 
    } 
} 

@end 

Так это выглядит, как вы используете UITableView, в вашем случае вы бы int selected = indexPath.row вместо int selected = 1.

2

Ошибка, которую вы видите, возникает из-за того, что вы помещаете * где-то перед переменной NSInteger.

Смежные вопросы