如何在堆栈中插入数字并像pop一样删除

时间:2015-08-10 17:04:43

标签: ios objective-c iphone nsarray

我正在使用按钮,我将标记create table dbo.Teacher ( [Person ID] int not null primary key clustered, [Teacher ID] int not null, [First Name] varchar(64) not null, Surname varchar(64) not null, AdministratorId int not null foreign key references dbo.Administrator([Person ID]) ); go 分配给0。然后我做了一个动作来获取点击按钮的标签,现在我想在标签中显示标签。我还有一个取消按钮10。如果用户想要删除任何号码,他可以点击我想从标签中删除号码的C按钮。

这是我触摸号码的截图

enter image description here

C

但是在标签中我会重复这样的数字。如何实现这一点。

例如,如果用户在标签

中输入2
- (void)viewDidLoad {
    [super viewDidLoad];

    self.title = @"Ezywire";

    addnum=[[NSMutableArray alloc]init];
    numbber=[[NSString alloc]init];
}

- (IBAction)NumberAction:(id)sender {
    NSInteger tagvalue = [sender tag];
    NSString *current=[NSString stringWithFormat:@"%ld", (long)tagvalue]; 
     [addnum addObject:current];

    NSString *temp;
    for ( int i=0; i<[addnum count]; i++) {

       numbber=[numbber stringByAppendingString:[addnum objectAtIndex:i]];

    }

    NSLog(@"data===%@",numbber);

    ValueLable.text= numbber;

}
然后他在标签

中输入7
2
然后他在标签

中输入了9
27 

........喜欢这个。

如果用户点击279 ,则会从标签中移除最后一个值(删除最后一个值)

C

2 个答案:

答案 0 :(得分:1)

代码中的问题是在加载视图时初始化numbber,并且永远不会再次清除。但是,每次按下按钮时,整个addnum数字会再次附加到num,从而产生重复的数字。

通过删除num作为实例变量,使其成为NumberAction:方法的本地变量,并在每次按下数字时将其设置为空字符串来解决此问题。

由于您计划也支持清除操作,因此您应该创建一个将addnum数组中的数字组合成字符串的私有方法。这样,您的NumberAction:ClearAction将共享格式化数组的代码并设置标签。您的NumberAction:方法会附加一个数字并调用FormatAndSetLabel,而ClearAction方法会删除最后一个数字(如果可用),并同时调用FormatAndSetLabel

- (IBAction)NumberAction:(id)sender {
    NSInteger tagvalue = [sender tag];
    NSString *current=[NSString stringWithFormat:@"%ld", (long)tagvalue]; 
    [addnum addObject:current];
    [self FormatAndSetLabel];
}

- (IBAction)ClearAction:(id)sender {
    if (!addnum.count) return;
    [addnum removeLastObject];
    [self FormatAndSetLabel];
}


-(void)FormatAndSetLabel {
    NSMutableString *temp = [NSMutableString string];
    for ( int i=0; i<[addnum count]; i++) {
        [temp appendString:addnum[i]];
    }
    ValueLable.text= temp;
}

答案 1 :(得分:0)

你也可以看看Paul的Hegarty Stanford iOS开发课程(iPad和iPhone应用程序开发,2011年秋季)

https://itunes.apple.com/ru/itunes-u/ipad-iphone-application-development/id473757255?mt=10

此处使用计算器应用作为示例。必须为初学者看。