Iphone “有错误的问题”;滚动视图“;未申报的

Iphone “有错误的问题”;滚动视图“;未申报的,iphone,objective-c,cocoa-touch,uiscrollview,Iphone,Objective C,Cocoa Touch,Uiscrollview,我正在学习创建应用程序的教程。我按照教程的要求编写了所有内容。然而,当我点击构建时,我得到了一些错误。 下面是我在实现文件中的一个方法的代码片段。我得到一个错误…(滚动视图'未声明)。。。另外,我还有另一个错误(预期为“;”before“:”token) 在这个方法下面,我将包含我的整个头文件,我已经声明了方法“scrollTheView”,所以我不知道我哪里出错了。本教程使用的是SDK iPhone OS 2.2.1,而我使用的是SDK iPhone 4.3,这可能是导致此问题的实际原因吗?我

我正在学习创建应用程序的教程。我按照教程的要求编写了所有内容。然而,当我点击构建时,我得到了一些错误。 下面是我在实现文件中的一个方法的代码片段。我得到一个错误…(滚动视图'未声明)。。。另外,我还有另一个错误(预期为“;”before“:”token)

在这个方法下面,我将包含我的整个头文件,我已经声明了方法“scrollTheView”,所以我不知道我哪里出错了。本教程使用的是SDK iPhone OS 2.2.1,而我使用的是SDK iPhone 4.3,这可能是导致此问题的实际原因吗?我已经编辑了这篇文章,以包含整个实现文件。在代码末尾,我还收到一个错误“输入结尾处的预期声明或语句”和另一句话“实现上下文中缺少@end”,感谢所有查看并试图帮助我的人。
谢谢scott帮我解决了那个缺失的括号。。现在我有一个通知弹出,即使它编译。。“UIKeyboardBoundsUserInfoKey不推荐使用注意”有人知道这是什么意思吗?当它还在编译时,我应该担心吗?它出现在方法“keyboardWillShow”下的“NSValue*aValue…”行中

 #import "ReturnToMeViewController.h"  
 #import "ReturnToMeAppDelegate.h"

@implementation ReturnToMeViewController

@synthesize textField;  
@synthesize label;  
@synthesize callNumber;  

-(void)viewDidLoad {  
    textField.clearButtonMode =
    UITextFieldViewModeWhileEditing;  
    [super viewDidLoad];  
}




-(void) viewWillAppear:(BOOL)animated {  
    [[NSNotificationCenter defaultCenter] addObserver:self
                    selector:@selector(keyboardWillShow:)  
                        name:UIKeyboardWillShowNotification
                        object:self.view.window];  
    [super viewWillAppear:animated];  
}

-(void) viewWillDisappear:(BOOL)animated {  

    [[NSNotificationCenter defaultCenter] removeObserver:self
            name:UIKeyboardWillShowNotification object:nil];  
    [super viewWillDisappear:animated];  
}

-(void)keyboardWillShow: (NSNotification *)notif {

    NSDictionary* info = [notif userInfo];  

    NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];  
    CGSize keyboardSize = [aValue CGRectValue] .size;  
    float bottomPoint = (textField.frame.origin.y+textField.frame.size.height+10);  
    scrollAmount = keyboardSize.height - (self.view.frame.size.height- bottomPoint);  

    if (scrollAmount >0) {
        moveViewUp =YES;   
        [self scrollTheView:YES]; 
    }
    else {
        moveViewUp =NO;  

    }



-**(void) scrollTheView:(BOOL) movedUp {**

        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3];
        CGRect rect = self.view.frame;
        if (movedUp) {
            rect.origin.y -= scrollAmount;
        }
        else {
            rect.origin.y += scrollAmount;
        }
        self.view.frame = rect;
        [UIView commitAnimations];
    }

-(void)touchesBegan: (NSSet *) touches withEvent: (UIEvent *)event {  
        if ( textField.editing) {  
            [textField resignFirstResponder];  
            [self updateCallNumber];  
            if (moveViewUp) [self scrollTheView:NO];  
        }
        [super touchesBegan:touches withEvent:event];  
    }



-(void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

-(void)viewDidUnload {
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


-(void)dealloc {  
    [textField release];  
    [label release];   
    [callNumber release]; 
    [super dealloc];  
}

    -(BOOL)textFieldShouldReturn: (UITextField *)theTextField {  

        [theTextField resignFirstResponder];   
        if (moveViewUp) [self scrollTheView:NO];  
        [self updateCallNumber]; 

        return YES;  
    }

-(void)updateCallNumber {    
        self.callNumber = textField.text;  
        label.text = self.callNumber;  
    }  

@end


###ReturnToMeViewController.m

    #import <  UIKit/UIKit.h >  

    @interface ReturnToMeViewController : UIViewController
        < UITextFieldDelegate > {  
        IBOutlet UITextField *textField;  
        IBOutlet UILabel *label;  
        BOOL    moveViewUp;  
        CGFloat  scrollAmount;  
        NSString  *callNumber;  

    }  

    @property (nonatomic, retain) UITextField *textField;  
    @property (nonatomic, retain) UILabel *label;  
    @property (nonatomic, retain) NSString  *callNumber;  

    - (void)scrollTheView:(BOOL) movedUp;  
    - (void)updateCallNumber;  

    **@end**
#导入“ReturnToViewController.h”
#导入“ReturnToMapDelegate.h”
@视图控制器的实现
@合成文本场;
@合成标签;
@综合呼号;
-(void)viewDidLoad{
textField.clearButtonMode=
编辑时的UITextFieldViewMode;
[超级视图下载];
}
-(void)视图将出现:(BOOL)动画{
[[NSNotificationCenter defaultCenter]添加观察者:self
选择器:@选择器(键盘将显示:)
名称:UIKeyboardWillShowNotification
对象:self.view.window];
[超级视图将显示:动画];
}
-(void)视图将消失:(BOOL)动画{
[[NSNotificationCenter defaultCenter]移除观察者:self
名称:UIKeyboardWillShowNotification对象:nil];
[超级视图将消失:动画];
}
-(无效)键盘将显示:(NSNotification*)notif{
NSDictionary*info=[notif userInfo];
NSValue*aValue=[info-objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize键盘大小=[aValue CGRectValue]。大小;
浮点数=(textField.frame.origin.y+textField.frame.size.height+10);
scrollAmount=keyboardSize.height-(self.view.frame.size.height-底部点);
如果(滚动量>0){
moveViewUp=是;
[自滚动视图:是];
}
否则{
moveViewUp=否;
}
-**(无效)滚动视图:(BOOL)movedUp{**
[UIView beginAnimations:nil上下文:NULL];
[UIView设置动画持续时间:0.3];
CGRect rect=self.view.frame;
if(movedUp){
rect.origin.y-=滚动量;
}
否则{
rect.origin.y+=滚动量;
}
self.view.frame=rect;
[UIView委员会];
}
-(void)触碰开始:(NSSet*)触碰事件:(UIEvent*)事件{
if(textField.editing){
[textField resignFirstResponder];
[自我更新呼叫号码];
如果(向上移动视图)[自滚动视图:否];
}
[超级触摸开始:触摸事件:事件];
}
-(无效)未收到记忆警告{
//如果视图没有superview,则释放该视图。
[超级记忆警告];
//释放所有未使用的缓存数据、图像等。
}
-(无效)视图卸载{
//释放主视图的所有保留子视图。
//例如,self.myOutlet=nil;
}
-(无效)解除锁定{
[文本字段发布];
[标签发布];
[电话号码发布];
[super dealoc];
}
-(BOOL)textfield应该返回:(UITextField*)textfield{
[文本字段辞职第一响应者];
如果(向上移动视图)[自滚动视图:否];
[自我更新呼叫号码];
返回YES;
}
-(void)updateCallNumber{
self.callNumber=textField.text;
label.text=self.callNumber;
}  
@结束
###返回视图控制器
#导入
@接口返回到ViewController:UIViewController
{
IBOutlet UITextField*textField;
IBUILABEL*标签;
BOOL-moveview-up;
现金产生量;
NSString*呼叫号码;
}  
@属性(非原子,保留)UITextField*textField;
@属性(非原子,保留)UILabel*标签;
@属性(非原子,保留)NSString*callNumber;
-(void)滚动视图:(BOOL)movedUp;
-(作废)updateCallNumber;
**@结束**

听起来您在scrollTheView函数之前的某个地方缺少了一个右括号“}”或分号“;”

在声明scrollTheView之前可能会出现错误,这意味着它无法检测scrollTheView。查看或在此处发布更多代码。

您的
键盘末尾缺少一个右括号,将显示:(NSNotification*)notif
方法

if (scrollAmount >0) {
    moveViewUp =YES;
    [self scrollTheView:YES];
}
else {
    moveViewUp =NO;
} // This is where the missing bracket should be
}

需要有两个结束括号–一个用于
if
语句,另一个用于方法–但只有一个。

生成错误在哪里?双击“错误”框中的错误通常会让您找到它所混淆的行。从何处以及如何调用scrollTheView:方法?抱歉,我正在尝试重新格式化它,以便更容易查看。。我知道如何创建换行符,但我不知道我的一些方法是如何放在一个蓝色的框中的,而有些方法则不是垃圾!谢谢你,斯科特!!我看到的最快回复,不仅如此,还解决了这个问题。。它汇编了。。然而,我也有一个“UIKeyboardBoundsUserInfoKey是不推荐的通知”,有人知道这是什么意思吗?当它还在编译时,我应该担心吗?