如何正确查看NSTextField中的数据?

时间:2014-01-15 10:03:40

标签: objective-c nstextfield

您好我最近完成了关于目标c基础知识的教程。现在我正在“尝试”制作一个简单的应用程序。现在我似乎遇到了一些我似乎无法解决的最简单的问题,也许你可以告诉我我做错了什么。

AppDelegate.h

    #import <Cocoa/Cocoa.h>

    @interface AppDelegate : NSObject <NSApplicationDelegate>

    @property (assign) IBOutlet NSWindow *window;
    - (IBAction)saveData:(id)sender;
    //Below is a simple IBOutlet which I try to retrieve data from when the IBAction saveData occurs
    @property (weak) IBOutlet NSTextField *foodName;


    @end

AppDelegate.m

    #import "AppDelegate.h"

    @implementation AppDelegate

    - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
    {
        // Insert code here to initialize your application
    }
    //Here is the saveData IBAction which should print out the value of the NSTextField if the user entered a value (if not returns null)
    - (IBAction)saveData:(id)sender {
        NSLog(@"%@", foodName.stringValue);
        NSLog(@"Saved");
    }
    @end

我似乎遇到的问题是构建将失败,并在AppDelegate.m中的这一行给我一条错误消息:

    NSLog(@"%@", foodName.stringValue);

错误信息是:使用未声明的标识符'foodName';你的意思是'_foodName'?

有人可以解释一下发生了什么以及如何克服这个问题?

1 个答案:

答案 0 :(得分:0)

地址 getter方法,请使用self.

NSLog(@"%@", self.foodName.stringValue);

另外,一个小问题:在@property语句的开头将所有@interface声明组合在一起,但是在任何实例变量声明之后:

@interface MyClass : NSObject {
    NSString *_str1;
    int _i1;
}
@property (weak) IBOutlet NSString *something;
@property (strong, readonly) NSNumber *somethingElse;
- (int)aMethod:(NSString *)string;
- (void)anotherMethod;
@end