Cocoa控制台应用程序 - 在类型对象上找不到属性

时间:2014-10-22 00:13:26

标签: objective-c xcode

所以我对OC编程很新,我来自前端背景(即HTML / CSS / JavaScript ......),所以我理解编程的基本概念:)

基本上我用一个简单的 FooClass 创建了一个控制台应用程序。

FooClass.h

#import <Foundation/Foundation.h>

@interface FooClass : NSObject

@property (strong, nonatomic) NSString *username;

- (NSString *) username;
- (void) setUsername:(NSString *)username;

@end

FooClass.m

#import "FooClass.h"

@implementation FooClass

@synthesize username = _username;

- (instancetype) init
{
    self = [super init];

    if (self) {

    }

    return self;
}

- (NSString *) username
{
    return _username;
}

- (void) setUsername:(NSString *)username
{
    _username = username;
}

@end

在main.m文件中,应用程序引导。

#import <Foundation/Foundation.h>
#include "FooClass.h"

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

    @autoreleasepool {

        // insert code here...
        NSLog(@"Hello, World!");

        FooClass *foo = [[FooClass alloc] init];
        foo.username = @"a";
    }
    return 0;
}

XCode告诉我它无法在 FooClass 类型的对象上找到属性 username 。我真的不知道它。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

我发布答案有点晚了。以下是您应该考虑的一些事项。

  1. 由于您有property username。您不需要为setter和getter创建方法。编译器将为您创建它们。只需删除这两个陈述。

  2. 也不需要synthesize中的.m

  3. 而不是#include使用#importimportinclude相比,即使您尝试直接或间接地从其他文件添加文件,<inSequence> <property name="FORCE_HTTP_1.0" value="true" scope="axis2"/> </inSequence> 也只需一份。