Я работаю над учебником по созданию приложений. Я последовал и все написано именно как учебник. Однако когда я запускаю сборку, я получаю несколько ошибок.
Ниже приведен фрагмент кода метода, который у меня есть в файле реализации. Я получаю сообщение об ошибке .... (scrollTheView 'undeclared) ... также у меня есть еще одна ошибка, связанная с ним (ожидаемая'; 'before': 'token) .....
Ниже этого метода я включу весь свой заголовочный файл, который я объявил методом "scrollTheView", поэтому я не понимаю, где я ошибся. В учебнике использовалась SDK iPhone OS 2.2.1, однако я использую SDK iphone 4.3. Может ли это быть реальной причиной этой проблемы? Я отредактировал пост, чтобы включить весь файл реализации. В конце кода я также получаю сообщение об ошибке «ожидаемое объявление или утверждение в конце ввода» и еще одно высказывание: «@end» отсутствует в контексте реализации », спасибо всем, кто просмотрел и пытается мне помочь.
спасибо, Скотт, за то, что помог мне с этой пропавшей скобкой ... теперь у меня есть уведомление, которое всплывает, даже если оно компилируется ... Должен ли я волноваться? он появляется в строке «NSValue * aValue .....» под методом «keyboardWillShow»
#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**