溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iOS開發(fā)OC基礎(chǔ):延展Extension

發(fā)布時間:2020-06-08 05:19:11 來源:網(wǎng)絡(luò) 閱讀:1536 作者:winann 欄目:移動開發(fā)

//延展Extension,是為類擴(kuò)充私有的方法,以及私有的實例變量,和分類Category相比,延展定義的方法是私有的,而且還可以定義實例變量(私有的)。

//@interface 開頭 + 類名(哪一個類的延展) + 小括號,小括號內(nèi)填寫的是延展名,一般情況下都省略。 @end結(jié)束 (寫在.m文件里)



main函數(shù)中的完整代碼為:

#import <Foundation/Foundation.h>
#import "Person.h"

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

    @autoreleasepool {
        
        Person *person = [[Person alloc] initWithName:@"ruby" sex:@"man" age:23];
        [person setName:@"Ruby"];
        person.age = 13;
//        [person sayHi];
        
    }
    return 0;
}


創(chuàng)建一個Person類

Person.h中的完整代碼為:

#import <Foundation/Foundation.h>

@interface Person : NSObject {
    NSString *_name;        //姓名
    NSString *_sex;         //性別
    NSInteger _age;         //年齡
}

#pragma mark - setter and getter
@property (nonatomic, retain) NSString *name;
@property (nonatomic ,retain) NSString *sex;
@property (nonatomic) NSInteger age;

#pragma mark - init method
- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(NSInteger)age;



@end


Person.m中的完整代碼為:

#import "Person.h"

@interface Person () {
    NSMutableArray *_personArr;
}
- (void)sayHi;
@end

@implementation Person

#pragma mark - init method
- (id)initWithName:(NSString *)name sex:(NSString *)sex age:(NSInteger)age {
    self = [super init];
    if (self) {
        self.name = name;
        self.sex = sex;
        self.age = age;
        [self sayHi];
    }
    
    return self;
}

#pragma mark - sayHi

- (void)sayHi {
    
    NSLog(@"This is a private method:%@, %@, %ld", self.name, self.sex, self.age);
}

@end


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI