1

配列内のオブジェクトをアラート ビューから返されたテキストに置き換えようとしています。

これまでのところ、私は持っています:

int selected = indexPath.row;

私のアラートビューデリゲートメソッド用。

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

のエラーが発生し続けます

'NSInteger' (別名 'long') から 'NSInteger *' (別名 'long *') に代入する、互換性のない整数からポインタへの変換

4

2 に答える 2

2

*表示されるエラーは、NSInteger 変数の前にa を配置したことが原因です。

于 2013-10-13T20:38:47.653 に答える
0

コードの残りの部分がどのように見えるかを知らなくても、ViewController.m ファイルでこれを試すことができます。ラベルのテキストを設定し、[OK] ボタンが押されたときに、変更可能な配列内のオブジェクトをアラート ビューのテキストに置き換えます。

#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.

于 2013-10-13T19:18:12.773 に答える