目标c中的一个简单的人类

aka*_*no1 2 iphone objective-c

我开始学习目标c,我做了一个简单的人类,我得到6个错误,期望说明者 - 限定符列表' - '令牌之前

只是想知道是否有人可以向我解释我做错了什么,

谢谢

#import <Foundation/Foundation.h>
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>


@interface Person:NSObject
{
    NSString *firstName;
    NSString *lastName;


    -(void) setFName:(NSString *) theFirstName;
    -(void) setLName:(NSString *) theLastName;
    -(void) printName;
}
@end

@implementation Person
{

    -(void) setFName:(NSString *) theFirstName
    {
        firstName = [[NSString alloc]initWithString: theFirstName];
    }

    -(void) setLName:(NSString *) theLastName
    {
        lastName = [[NSString alloc]initWithString: theLastName];
    }

    -(void) printName
    {
        NSLog(@"The person's full name is",firstName,lastName);
    }

}

@end


int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    Person *person = [[Person alloc] init];

    [person setFName:@"Amir"];
    [person setLName:@"Karimian"];
    [person printName];

    [person release];
    [pool drain];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*ong 6

甚至更简单:

@interface Person : NSObject

@property (nonatomic, copy) NSString * firstName;
@property (nonatomic, copy) NSString * lastName;

- (NSString *) fullName;

@end

@implementation Person
@synthesize firstName, lastName;

- (NSString *) fullName {
  return [NSString stringWithFormat:@"%@ %@", [self firstName], [self lastName]];
}

- (void) dealloc {
  [self setFirstName:nil];
  [self setLastName:nil];
  [super dealloc];
}

@end
Run Code Online (Sandbox Code Playgroud)


tas*_*oor 5

方法声明将在闭括号之外.

@interface Person:NSObject
{
    NSString *firstName;
    NSString *lastName;
}

-(void) setFName:(NSString *) theFirstName;
-(void) setLName:(NSString *) theLastName;
-(NSString *) firstName;
-(NSString *) lastName;
-(void) printName;

@end
Run Code Online (Sandbox Code Playgroud)

并且在实施中不需要支撑.

@implementation Person
// { is not required
-(void) setFName:(NSString *) theFirstName {
    // code
}

-(void) setLName:(NSString *) theLastName {

}

// in this way

// } is not required
@end
Run Code Online (Sandbox Code Playgroud)

至少有两个逻辑错误.在printName中

NSLog(@"The person's full name is %@ %@",firstName,lastName);
Run Code Online (Sandbox Code Playgroud)

你的格式字符串错了.

并在主要

[person setLName:@"Karimian"];
Run Code Online (Sandbox Code Playgroud)

您有用户"ser"而不是"set".