iOS全域變數的聲明和使用

來源:互聯網
上載者:User

標籤:第一個   nsstring   nbsp   tom   repr   roc   實現   nonatomic   頁面   

在一個項目中,我們可能需要定義幾個全域變數,在我們程式的任何位置都可以進行訪問,提高我們的開發效率。在iOS中我們如何來實現呢?我們主要使用的是AppDelegate類來實現。如下:

(1)AppDelegate.h:

  1. #import <UIKit/UIKit.h>  
  2.   
  3. @interface AppDelegate : UIResponder <UIApplicationDelegate>  
  4.   
  5. @property (strong, nonatomic) UIWindow *window;  
  6.   
  7. @property (strong,nonatomic) NSString *myName;//聲明一個全域變數;  
  8.   
  9.   
  10. @end  

 

 

(2)ViewController.m

這個是第一個頁面。

  1. #import "ViewController.h"  
  2. #import "AppDelegate.h"   //需要引入這個標頭檔;  
  3.   
  4.   
  5. @interface ViewController ()  
  6.   
  7. @end  
  8.   
  9. @implementation ViewController  
  10.   
  11. - (void)viewDidLoad {  
  12.   [super viewDidLoad];  
  13.     
  14. }  
  15.   
  16. - (void)viewDidAppear:(BOOL)animated{  
  17.     
  18.   [super viewDidAppear:true];  
  19.     
  20.   AppDelegate *app = [[UIApplication sharedApplication] delegate];  
  21.     
  22.   NSLog(@"%@",app.myName);  
  23.   app.myName = @"第一個頁面";  
  24.     
  25. }  
  26.   
  27.   
  28. @end  


(3)SecondViewController.m

 

這個是第二個頁面。

  1. #import "SecondViewController.h"  
  2. #import "AppDelegate.h"  
  3.   
  4. @interface SecondViewController ()  
  5.   
  6. @end  
  7.   
  8. @implementation SecondViewController  
  9.   
  10.   
  11. - (void)viewDidLoad {  
  12.   [super viewDidLoad];  
  13.     
  14. }  
  15.   
  16. - (void)viewDidAppear:(BOOL)animated{  
  17.   
  18.   AppDelegate *app = [[UIApplication sharedApplication] delegate];  
  19.   NSLog(@"%@",app.myName);  
  20.     
  21.   app.myName = @"第二個頁面";  
  22.     
  23. }  
  24.   
  25. @end  


最後在兩個頁面之間跳轉,輸出結果如下:

 

 

這表示我們對同一個變數進行了操作。為什麼在AppDelegate中可以聲明全域變數呢?因為使用了單例,AppDelegate就是一個單例的類,實現了UIApplicationDelegate這個委託。只要我們在程式的任何地方聲明了AppDelegate的對象,這個對象就是唯一的,所以就可以實現全域變數

iOS全域變數的聲明和使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.