我和帖子的int和NSInteger之间的区别

时间:2015-11-27 16:44:49

标签: ios objective-c uiviewcontroller

在这里,当我以前学习Objective-C时,我带来了一些疑问,而且我搜索过Google无法得到完美的答案。我是从Objective-C的初学者的一个博客中做到的。

首先,我将展示我的代码:

@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];
    

    为什么他们不使用:

    NSInteger * soemname = // alloc init //
    
  3. 他们还使用了float。为什么不能使用CGFloat

  4. 任何人都可以告诉我为什么他们使用int而不是NSInteger和所有人?如果有可能,任何人都可以将intNSInteger重新编码,以便同样工作吗?

    请帮我澄清这个疑问。我是学习过程的新手。

1 个答案:

答案 0 :(得分:0)

1。 AppDelegateUIApplication的委托类的默认实现。有关委托的用途的详细信息,请参阅UIApplicationUIApplicationDelegate协议的文档。 ViewControllerUIViewController子类的名称,在创建新项目时,有几个模板为您创建。视图控制器是管理应用程序UI的类。

2。 NSInteger是一个int,根据平台的不同,可以更改位宽。对于iOS,这意味着它是32位宽(较旧的硬件)或64(较新的硬件)。 iOS上int总是32位宽。使用一个而不是另一个的原因取决于场景。有时候,拥有一个不会改变的已知宽度会更好。有时最好使用“原生”整数大小。选择一个在另一个上面没有硬性规定。

3. float是基本的C类型。 CGFloat与平台有关,原始类型可能会更改(float,double)。除非有人以某种方式与Core Graphics进行交互,否则没有理由使用CGFloat