我正在阅读O'Reilly的书“学习可可与Objective-C第3版”。
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
导致此错误的原因是什么?
答案 0 :(得分:4)
otherButtonTitles
参数是复数(如otherButtonTitle*s*
)。
答案 1 :(得分:0)
UIAlertView是一个UIKit(iOS)类。看起来你正试图在Cocoa项目中使用它,而不是Cocoa Touch。
答案 2 :(得分:0)
我是本书的作者之一。
这个问题已经得到了正确回答,但我只是想插入 - 来自CodaFi的答案是正确的,问题是该方法以“otherButtonTitles”(带有s)结束,而不是“otherButtonTitle”。
我只是仔细检查了这本书的第18页,实际上这本书看起来是正确的!
如果您对这本书有任何其他疑问,请在此处发布 - 我会四处寻找,寻找提及该书的任何问题。我们随时欢迎勘误表!