2015-11-27 31 views
-1

當我學習Objective-C時,我帶來了一些疑問,並且我搜索了Google無法獲得完美答案。我從一個博客爲Objective-C的初學者做了這個。int和NSInteger之間的差異對於我的帖子

首先,我會告訴我的代碼:

@implementation ViewController 

@synthesize textfield 1; 
@synthesize textfield 2; 
@synthesize textfield 3; 
@synthesize totalTextField; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
// // Do any additional setup after loading the view. 
    self.navigationItem.title = @「calculate the 3 field「; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

- (IBAction)calculate:(id)sender { 
    int firstNumber = [[self.textfield 1 text] intValue]; 
    int secondNumber = [[self.textfield 2 text] intValue]; 
    int thirdNumber = [[self.textfield 3 text] intValue]; 

    //NSLog(@"firstNumber: %i , secondNumber: %i, thirdNumber: %i", firstNumber, secondNumber, thirdNumber); 
    float total = (CGFloat) firstNumber/2 + secondNumber/2 + thirdNumber/2; 
    NSLog(@「total is: %f", total); 
    NSString *mark = [NSString stringWithFormat:@"%.2f", total]; 
    self.totalTextField.text = mark; 
} 

Explaniation:

我有三個文本字段名爲textfield 1,textfield 2,textfield 3。當用戶在三個文本字段中輸入數字時,他們必須按計算按鈕。之後,將進行一些計算並在totalTextField中顯示最終結果。

我的問題:

  1. 爲什麼在Xcode中默認的文件名爲Appdelegate, view controller.?那兩個的實際含義是什麼?爲什麼他們是默認的,如果我們刪除Appdelegate.h .m文件會發生什麼? viewcontroller, Appdelegate是什麼意思?

  2. 在我裏面,他們使用上面的代碼計算按鈕方法:

    int firstNumber = [[self.textfield 1 text] intValue]; 
    

    爲什麼他們din't使用:

    NSInteger * soemname = // alloc init // 
    
  3. 而且也是他們用float。爲什麼不能使用CGFloat

任何一個可以告訴我,爲什麼他們用int,而不是NSInteger和所有?如果有可能任何一個重新編碼intNSInteger工作相同?

請幫我解決這個疑問。我是學習過程中的新手。

+0

未來,請嘗試針對每個問題提出一個問題。這對每個人都很簡單。 – turingtested

回答

0

1.AppDelegateUIApplication的委託類的默認實現。有關代表的具體內容,請參閱UIApplicationUIApplicationDelegate協議的文檔。 ViewControllerUIViewController子類的名稱,當你創建一個新項目時,幾個模板爲你創建。視圖控制器是管理應用程序UI的類。

2.NSInteger是一個int,根據平臺改變位寬。對於iOS,這意味着它可以是32位寬(較舊的硬件)或64(較新的硬件)。在iOS上,int始終爲32位寬。使用其中一個的原因取決於場景。有時最好有一個不會改變的已知寬度。有時最好使用「本地」整數大小。選擇一個在另一個之上沒有硬性規定。

3.float是基本的C型。 CGFloat是平臺相關的,並且原始類型可能會更改(float,double)。沒有理由使用CGFloat,除非以某種方式與Core Graphics交互。

相關問題