溫馨提示×

溫馨提示×

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

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

Objctive-C 全局變量

發(fā)布時(shí)間:2020-06-24 11:30:16 來源:網(wǎng)絡(luò) 閱讀:454 作者:Aonaufly 欄目:開發(fā)技術(shù)

一,全局變量

1,在m文件中的所有方法,類定義和函數(shù)定義之外

例:Square.m中定義一個(gè)全局變量 , 在main.m中引用

Square.m代碼如下:

//
//  Square.m
//  Square
//
//  Created by Apple on 2017/9/9.
//  Copyright  2017年 Apple. All rights reserved.
//

#import "Square.h"

int global_val = 20;//定義一個(gè)全局變量

@implementation Square : Rectangle

-(void) setSide:(int)s
{
    [ self setWidth:s addHeight:s];
}
-(int) side
{
    return self.width;
}

@end

使用外部的全局變量要使用extend關(guān)鍵字

main.m代碼如下:

//
//  main.m
//  Square
//
//  Created by Apple on 2017/9/9.
//  Copyright  2017年 Apple. All rights reserved.
//

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



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        extern int global_val;//
        int s = global_val;
        NSLog(@"我得到的全局變量為 : %i" , s);
        return 0;}
}

結(jié)果如下:

Objctive-C 全局變量

既然是全局變量,那么任何地方的修改都會(huì)在全局產(chǎn)生作用



進(jìn)一步測試

Square.m代碼:

//
//  Square.m
//  Square
//
//  Created by Apple on 2017/9/9.
//  Copyright  2017年 Apple. All rights reserved.
//

#import "Square.h"

int global_val = 20;//定義一個(gè)全局變量

@implementation Square : Rectangle

-(void) setSide:(int)s
{
    [ self setWidth:s addHeight:s];
}
-(int) side
{
    return self.width;
}
-(void) change
{
    global_val = 30;//此處改變?nèi)肿兞康闹?}
-(int) get_global
{
    return global_val;
}
@end

main.m

//
//  main.m
//  Square
//
//  Created by Apple on 2017/9/9.
//  Copyright  2017年 Apple. All rights reserved.
//

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



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        extern int global_val;//
        int s = global_val;
        NSLog(@"我得到的全局變量為 : %i" , s);
        
        Square *mySquare = [[Square alloc] init];
        [mySquare change];
        NSLog(@"Square change 后 s : %i     ;;;;;  的全局變量 : %i" , s , global_val);
        
        global_val = 100;
        NSLog(@"s = %i , Square 中的全局變量 : %i " , s , [mySquare get_global]);
        return 0;}
}

結(jié)果:

Objctive-C 全局變量

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

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

AI