クラスのサンプル

//

//  Person.h

//  クラスの基本

//

//  Created by shodai on 2017/06/15.

//  Copyright © 2017 Mycompany. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

@interface Person : NSObject

 

//この1行だけで、public なアクセサが生成されている(read/write)

@property NSString* name;

 

//この1行だけで、public なアクセサが生成されている(read)

@property (readonly) NSString* sex;

 

 

#pragma mark Protected Methods

-(NSInteger)coutup;

    

@end

 


//

//  Person.m

//  クラスの基本

//

//  Created by shodai on 2017/06/15.

//  Copyright © 2017 Mycompany. All rights reserved.

 

/*

 参考

 https://www.ecoop.net/memo/archives/objective-c-property-basics.html

 http://qiita.com/a_ishidaaa/items/6461f62a1a12208b0c50

 http://qiita.com/yuky_az/items/f2c3db2796d0a73dfde2

 http://adragoona.hatenablog.com/entry/2014/06/11/182527

 */

 

//

 

#import "Person.h"

 

 

 

@implementation Person{

    

    //完全にプライベートな扱いとなるインスタンス変数

    NSInteger count;

}

 

-(id)init{

    

    self = [super init];

 

    _sex = @"man";

    

    return self;

    

}

 

 

-(NSInteger)coutup{

    

    count++;

    

    return count;

    

}

    

 

 

@end


クラスを利用する側

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

 

    NSLog(@"%@",person.sex);

    NSLog(@"%@",[person sex]);

    

    //person.sex = @"woman"; コンパイルエラーになる

    

    person.name = @"aaa";

    

    NSLog(@"%@",person.name);

    NSLog(@"%@",[person name]);

 

    

    [person setName:@"bbb"];

 

    NSLog(@"%@",person.name);

    NSLog(@"%@",[person name]);

 

    NSLog(@"%ld",[person coutup]);