1

我正在阅读 O'Reilly 的《Learning Cocoa with Objective-C 3rd edition》一书。

O'Reilly 网站没有此特定书籍的论坛,搜索此错误不会返回任何内容。

在第 18 页,我不断收到以下错误:

"No visible @interface for 'UIAlertView' declares the selector 'initWithTitle:message:deluge:cancelButtonTitle:otherButton'"

这是我的代码:

//
//  ViewController.m
//  HelloCocoa
//
//  Created by ME on 1/14/13.
//  Copyright (c) 2013 ME. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)showAlert:(id)sender
{
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Hello!"
                                                    message:@"Hello, World!"
                                                   delegate:nil
                                          cancelButtonTitle:@"Close"
                                           otherButtonTitle:nil];
    [alert show];
    [_helloButton setTitle:@"I was Clicked!" forState:UIControlStateNormal];
}
@end



//
//  ViewController.h
//  HelloCocoa
//
//  Created by ME on 1/14/13.
//  Copyright (c) 2013 Andrew DiNatale. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIView *helloButton;
- (IBAction)showAlert:(id)sender;
@end

是什么导致了这个错误?

4

3 回答 3

4

otherButtonTitles参数是复数(如)otherButtonTitle*s*

于 2013-01-18T02:49:33.270 回答
0

UIAlertView 是一个 UIKit (iOS) 类。看起来您正试图在 Cocoa 项目中使用它,而不是 Cocoa Touch。

于 2013-01-18T02:33:23.153 回答
0

我是这本书的作者之一。

这个问题已经得到了正确的回答,但我只是想插话 - CodaFi 的答案是正确的,问题是该方法以“otherButtonTitles”(带有 s)而不是“otherButtonTitle”结尾。

我只是仔细检查了这本书的第 18 页,实际上看起来这本书是正确的!

如果您对这本书有任何其他问题,请在此处发布 - 我会四处游荡,寻找任何提及这本书的问题。勘误总是受欢迎的!

于 2013-03-10T06:53:11.137 回答