iOs简单问好,名字不行

时间:2011-08-28 16:49:11

标签: iphone ios cocoa-touch

我最近开始基本通过Lynda.com iOs SDK essentials课程学习Obj-C和Iphone开发。但它是为Xcode 3.x编写的,我安装了4.0.x,所以情况有所不同。 基本上,我从那里采取示例,它只是对我不起作用,我无法弄明白它是一个菜鸟。

//basicViewController.h
#import <UIKit/UIKit.h>

@interface basicViewController : UIViewController {
IBOutlet UITextField *txtName;
IBOutlet UILabel *lblMessage;
}
@property (nonatomic, retain) IBOutlet UITextField *txtName;
@property (nonatomic, retain) IBOutlet UILabel *lblMessage;

- (IBAction) doSomething;
@end

我的basicViewController.m

#import "basicViewController.h"

@implementation basicViewController
@synthesize txtName;
@synthesize lblMessage;

- (IBAction) doSomething
{
NSString *msg = [[NSString alloc] initWithFormat:@"Hello, %@",txtName.text];
[lblMessage setText:msg];
[msg release];
}

- (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 {
[super dealloc];
}
@end

我没有改变basicAppDelegate.h和.m的创建方式。我想无论如何我都会发布它们。

//
//  basicAppDelegate.h

#import <UIKit/UIKit.h>

@class basicViewController;

@interface basicAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
basicViewController *viewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet basicViewController *viewController;

@end


//
//  basicAppDelegate.m

#import "basicAppDelegate.h"
#import "basicViewController.h"

@implementation basicAppDelegate

@synthesize window;
@synthesize viewController;


- (void)applicationDidFinishLaunching:(UIApplication *)application {    

// Override point for customization after app launch    
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}


 - (void)dealloc {
[viewController release];
[window release];
[super dealloc];
}


 @end

这是我的main.m:

//
//  main.m


#import <UIKit/UIKit.h>

int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

此外,在Interface Builder窗口中,我通过File的Owner:label链接到lblMessage,TextField链接到txtName,doSomething链接到Button。

现在,问题是:实际上,只有当我使用弹出键盘而不是我的物理键盘时,事情才有用。并且只有当我键入少于3-4-5个符号时(有时不同)。 如果我使用我的键盘,而不是弹出键盘 - 它给我线程1接收信号EXC_BAD_ACCESS。 如果我键入太多符号,则相同。

我在All Output中看不到多少 - 只是一些常见的东西,唯一可疑的行是:

warning:unable to compile regular expression "dyld"
Current language: auto; currently objective-c
(gdb)

所以,伙计们,感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

首先,除了界面之外,没有改变Xcode 3以外的东西。

尝试设置断点并查看应用崩溃的位置......

尝试删除IBOutlets并创建新的...

尝试创建新应用...

如果一切都行不通,请将Mac扔到窗外,将其带回Apple。 (或再次安装Xcode - >便宜得多..)

答案 1 :(得分:0)

我遇到了完全相同的问题,花了AGES寻找解决方案。我发现了如何使它工作,我已经制作了一个关于如何在XCode上创建Hello,Name应用程序的教程。看看它是否有帮助。我想如果你逐步按照步骤操作,你应该立即运行你的应用程序。

http://techtalktone.wordpress.com/2011/11/26/hello-world/

希望这会有所帮助;)