Objective c 目标C计算器程序

Objective c 目标C计算器程序,objective-c,Objective C,.h文件 嗨,伙计们! 我一直在努力学习Objective-C,所以这些问题对你来说可能很愚蠢,但对我来说很难,所以请不要否决我的问题,因为我只是想像你一样学习。:) 我在.m文件中有几个问题 (iAction)digitPressed:(UIButton*)sender是否意味着它是一个类型,而sender同时是一个指针?我们不能拆下支架吗 NSLog(@“数字按下%@”,数字)为什么这不适用于*数字。数字不是只存储地址而不是实际值吗 UILabel*myDisplay=self.displa

.h文件

嗨,伙计们! 我一直在努力学习Objective-C,所以这些问题对你来说可能很愚蠢,但对我来说很难,所以请不要否决我的问题,因为我只是想像你一样学习。:)

我在.m文件中有几个问题

  • (iAction)digitPressed:(UIButton*)sender
    是否意味着它是一个类型,而
    sender
    同时是一个指针?我们不能拆下支架吗

  • NSLog(@“数字按下%@”,数字)为什么这不适用于
    *数字
    。数字不是只存储地址而不是实际值吗

  • UILabel*myDisplay=self.display我知道
    self.display
    是一个getter,但是什么是
    self
    我们什么时候使用它呢

  • NSString*currentText=myDisplay.text
    我们为什么要写
    .text
    而不是
    currentTitle
    中的
    NSString*digit=[sender currentTitle]

  • 最后,我读了很多书,但不明白。在一句话中,
    NSString
    UILabel
    之间有什么区别

  • (UIButton*)sender表示在方法的参数中传递发件人,并将该发件人强制转换为UIButton对象

  • 因为*digit是指向对象的指针,所以它将打印对象的内存地址

  • 如果希望通过getter而不是直接通过实例变量访问变量,则可以使用它

  • 是一样的,只是一种约定,使用。访问属性和访问方法的空间

  • NSString表示类似“ABC”的字符串对象,UILabel是将显示在屏幕中的视图,其中的文本是NSString

  • 我不会详细介绍,因为这不是一个教程页面。你可以在CocoaTouch编程书的第一章找到所有这些答案

  • (UIButton*)sender表示在方法的参数中传递发件人,并将该发件人强制转换为UIButton对象

  • 因为*digit是指向对象的指针,所以它将打印对象的内存地址

  • 如果希望通过getter而不是直接通过实例变量访问变量,则可以使用它

  • 是一样的,只是一种约定,使用。访问属性和访问方法的空间

  • NSString表示类似“ABC”的字符串对象,UILabel是将显示在屏幕中的视图,其中的文本是NSString

  • 我不会详细介绍,因为这不是一个教程页面。你可以在CocoaTouch编程书的第一章找到所有这些答案

  • (UIButton*)是对UIButton对象的类型转换。如果确定发件人是UIButton,则可以添加类型转换。通过这种方式,您可以直接访问UIButton对象上的属性/方法
  • 二,。 据我所知,数字指的是字符串对象。和*数字表示第一个(位于索引0处)

    三,。 self是指它自己的类,即calculatorViewController

    四,。 文本是UILabel组件的属性

    五,。 如果需要UILabel组件,则无法在显示器本身上显示NSString。您可以将文本属性设置为NSString对象并在屏幕上显示它

    问候

    约翰

  • (UIButton*)是对UIButton对象的类型转换。如果确定发件人是UIButton,则可以添加类型转换。通过这种方式,您可以直接访问UIButton对象上的属性/方法
  • 二,。 据我所知,数字指的是字符串对象。和*数字表示第一个(位于索引0处)

    三,。 self是指它自己的类,即calculatorViewController

    四,。 文本是UILabel组件的属性

    五,。 如果需要UILabel组件,则无法在显示器本身上显示NSString。您可以将文本属性设置为NSString对象并在屏幕上显示它

    问候


    Johan

    我建议您开始阅读objective-c的编程教程,它从头开始。在这样一个教程中,它也解释了软件开发的基础知识,你所有的问题都会得到回答。嗨@Flovdis,我对python有一点了解,我也在阅读OBJ C for dummies,但由于有太多的基本问题,他们并没有真正进入这个话题。我不会真的为傻瓜推荐OBJ C这不是一本好书,我可能会推荐
    “开始iOS 7开发:探索iOS SDK”
    ,作为一本更高级的书
    “iOS 7编程突破极限”
    @Popeye,我一定会购买你推荐的。如果你愿意,我可以删除这个问题。不,不要删除它,它可能会关闭,但它仍然可以帮助其他人。这只是因为你已经就一个问题问了一个基本的问题,通常最好问几个问题。我建议你开始阅读objective-c的编程教程,它从头开始。在这样一个教程中,它也解释了软件开发的基础知识,你所有的问题都会得到回答。嗨@Flovdis,我对python有一点了解,我也在阅读OBJ C for dummies,但由于有太多的基本问题,他们并没有真正进入这个话题。我不会真的为傻瓜推荐OBJ C这不是一本好书,我可能会推荐
    “开始iOS 7开发:探索iOS SDK”
    ,作为一本更高级的书
    “iOS 7编程突破极限”
    @Popeye,我一定会购买你推荐的。如果你愿意,我可以删除这个问题。不,不要删除它,它可能会关闭,但它仍然可以帮助其他人。这只是因为你对一个问题问了一个基本的问题,通常最好问几个问题。非常感谢!!真的很有帮助。我会尽快接受你的答复。只有一个问题
    #import <UIKit/UIKit.h>
    
    @interface calculatorViewController : UIViewController
    
    @property (weak, nonatomic) IBOutlet UILabel *display;
    @end
    
    #import "calculatorViewController.h"
    
    @interface calculatorViewController ()
    
    @end
    
    @implementation calculatorViewController
    
    @synthesize display=_display;
    - (IBAction)digitPressed:(UIButton*)sender
    {
        NSString *digit=[sender currentTitle];
        NSLog(@"digit pressed %@", digit);
    
        UILabel*myDisplay=self.display;
        //[self display] why not just type
    
        NSString *currentText= myDisplay.text;//[myDisplay text]; why are we not writing current title again?
        nsstring*newText=[currentText stringByAppendingString:digit];
        [myDisplay setText:newText];