最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS關(guān)鍵字static extern const使用示例詳解

 更新時(shí)間:2023年11月09日 11:02:53   作者:FieryDragon  
這篇文章主要為大家介紹了iOS關(guān)鍵字static extern const使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

全局變量

在函數(shù)外聲明的變量,可以在聲明時(shí)附上初始值,存儲(chǔ)在全局區(qū),生命周期為整個(gè)程序運(yùn)行期間。

#import "SEObject.h"
//定義在.h文件中時(shí)該類被其他文件引入時(shí)報(bào)重復(fù)定義的錯(cuò)誤(1 duplicate symbol for architecture x86_64)
NSString * SEString = @"SEString";
@implementation SEObject
@end
#import "SEView.h"
//#import "SEObject.h"
//NSString * SEString;
@implementation SEView
@end

源程序中不能存在相同的對象名,否則編譯器報(bào)錯(cuò)(1 duplicate symbol for architecture x86_64

extern

此時(shí)如果其它源文件想要訪問該全局變量,需要聲明extern。

  • 在使用的類中extern 全局變量,此時(shí)不要要引入全局變量所在類。
#import "SEView.h"
//#import "SEObject.h"
//NSString * SEString;
@implementation SEView
- (void)add {
    extern NSString * SEString;
    NSLog(@"%@",SEString);
    SEString = @"SEString2";
    NSLog(@"%@",SEString);
}
@end
  • 在全局變量所在類的.h文件中聲明該全局變量外部使用(推薦)。
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
extern NSString * SEString;
@interface SEObject : NSObject
@end
NS_ASSUME_NONNULL_END
#import "SEView.h"
#import "SEObject.h"
//NSString * SEString;
@implementation SEView
- (void)add {
    //extern NSString * SEString;
    NSLog(@"%@",SEString);
    SEString = @"SEString2";
    NSLog(@"%@",SEString);
}
@end
SEString
SEString2

static - 靜態(tài)全局變量

用static修飾的全局變量為靜態(tài)全局變量,存儲(chǔ)在全局區(qū),生命周期為整個(gè)程序運(yùn)行期間。

#import "SEObject.h"
//定義在.h文件中時(shí)該類被其他文件引入時(shí)報(bào)重復(fù)定義的錯(cuò)誤(1 duplicate symbol for architecture x86_64)
static NSString * SEString = @"SEString";
@implementation SEObject
+ (void)add {
    NSLog(@"%@",SEString);
    SEString = @"SEString2";
    NSLog(@"%@",SEString);
}
SEString
SEString2
@end

static不能與extern組合使用,否則報(bào)錯(cuò):Cannot combine with previous 'extern' declaration specifier

聲明在.h文件時(shí),引入該類,依然可以使用并修改此靜態(tài)全局變量;

聲明在.m文件時(shí),兩個(gè)類文件可是使用相同變量名,彼此相互獨(dú)立。

全局變量和靜態(tài)變量區(qū)別(摘抄)

兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個(gè)源程序,當(dāng)一個(gè)源程序由多個(gè)源文件組成時(shí),非靜態(tài)的全局變量在各個(gè)源文件中都是有效的。 而靜態(tài)全局變量則限制了其作用域,即只在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個(gè)源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,因此可以避免在其它源文件中引起錯(cuò)誤。

const

const修飾的變量是不可變的。

正確用法:

static NSString * const SEString = @"SEString";

以下兩種寫法const修飾的是* SEString,*是指針指向符,也就是說此時(shí)指向內(nèi)存地址是不可變的,而內(nèi)存保存的內(nèi)容時(shí)可變的。

static NSString const * SEString = @"SEString";
static const NSString * SEString = @"SEString";

局部變量

函數(shù)內(nèi)部聲明的變量,僅在當(dāng)前函數(shù)執(zhí)行期間存在。

@implementation SEObject

- (void)add {
    NSInteger a = 1;
    NSInteger b = 2;
    NSInteger c = a+b;
    NSLog(@"c = %ld",c);
}

@end

static - 靜態(tài)局部變量

用static修飾的局部變量為靜態(tài)局部變量,存儲(chǔ)在全局區(qū),生命周期為整個(gè)程序運(yùn)行期間。

- (void)add {
    NSInteger a = 1;
    NSInteger b = 2;
    static NSInteger c2;
    c2 += a+b;
    NSLog(@"c2 = %ld",c2);
}
調(diào)用兩次結(jié)果:
c2 = 3
c2 = 6

以上就是iOS關(guān)鍵字static extern const使用示例詳解的詳細(xì)內(nèi)容,更多關(guān)于iOS關(guān)鍵字static extern const的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • IOS-MVC層讀取服務(wù)器接口JSON數(shù)據(jù)

    IOS-MVC層讀取服務(wù)器接口JSON數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了IOS-MVC層讀取服務(wù)器接口JSON數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • iOS中的UIKeyboard鍵盤視圖使用方法小結(jié)

    iOS中的UIKeyboard鍵盤視圖使用方法小結(jié)

    鍵盤視圖我們平時(shí)在做App的時(shí)候都要調(diào)用得到,這里我們就來整理一下iOS中的UIKeyboard鍵盤視圖使用方法小結(jié),需要的朋友可以參考下
    2016-06-06
  • iOS百度地圖簡單使用詳解

    iOS百度地圖簡單使用詳解

    百度地圖的功能有很多,本篇文章主要介紹了iOS百度地圖簡單使用詳解,具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-11-11
  • iOS 撥打電話代碼的三種方式

    iOS 撥打電話代碼的三種方式

    本文給大家分享三種方式實(shí)現(xiàn)ios撥打電話的代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,感興趣的朋友一起看看吧
    2016-11-11
  • iOS使用WKWebView加載HTML5不顯示屏幕寬度的問題解決

    iOS使用WKWebView加載HTML5不顯示屏幕寬度的問題解決

    這篇文章主要介紹了iOS使用WKWebView加載HTML5不顯示屏幕寬度的問題解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • iOS實(shí)現(xiàn)去除html標(biāo)簽的方法匯總

    iOS實(shí)現(xiàn)去除html標(biāo)簽的方法匯總

    相信大家在做網(wǎng)站的時(shí)候,經(jīng)常會(huì)遇到去除html標(biāo)簽的問題,下面這篇文章主要給大家總結(jié)介紹了關(guān)于iOS如何實(shí)現(xiàn)去除html標(biāo)簽的一些方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-10-10
  • iOS開發(fā)驗(yàn)證判斷語句之正則表達(dá)式小結(jié)

    iOS開發(fā)驗(yàn)證判斷語句之正則表達(dá)式小結(jié)

    最近在公司接手重構(gòu)一個(gè)項(xiàng)目,發(fā)現(xiàn)之前的開發(fā)在驗(yàn)證格式這塊寫的太亂了,到處都有相關(guān)的驗(yàn)證代碼,所以就有了這篇文章,供自己收藏也分享給有需要的朋友們參考借鑒,下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • iOS 按鈕上的文字添加下劃線的方法

    iOS 按鈕上的文字添加下劃線的方法

    這篇文章主要介紹了iOS 按鈕上的文字添加下劃線的方法的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • iOS中CPU線程調(diào)試的高級技巧分享

    iOS中CPU線程調(diào)試的高級技巧分享

    這篇文章主要給大家介紹了關(guān)于iOS中CPU線程調(diào)試的高級技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • 詳解iOS App中UiTabBarController組件的基本用法

    詳解iOS App中UiTabBarController組件的基本用法

    UiTabBarController組件即是用來創(chuàng)建App中的Tab視圖切換選項(xiàng)欄,下面將詳解iOS App中UiTabBarController組件的基本用法,包括左右滑動(dòng)切換標(biāo)簽頁等基本功能的實(shí)現(xiàn),需要的朋友可以參考下
    2016-05-05

最新評論

武强县| 天等县| 阿拉善盟| 青州市| 黔西| 怀化市| 香港| 乃东县| 双辽市| 望江县| 饶阳县| 共和县| 孙吴县| 平凉市| 比如县| 德江县| 昭平县| 洛宁县| 泗洪县| 东乌珠穆沁旗| 桂林市| 孝感市| 南陵县| 海门市| 石狮市| 凤山市| 九龙坡区| 万盛区| 奉贤区| 西贡区| 夹江县| 万载县| 中西区| 庐江县| 理塘县| 赣榆县| 富顺县| 原平市| 曲松县| 霍州市| 山丹县|