NSString* digit = [sender currentTitle];
if (self.userIsInTheMiddleOfEnteringANumber){
NSString* currentDisplayText = [[self display]text];
NSString* newDisplayText = [currentDisplayText stringByAppendingString:digit];
self.display.text = newDisplayText;
我会尽力解释我的问题。这行代码从选择的按钮中取数字,不保存字符串“digit”。 “currentDisplayText”获取标签中显示的数字。然后附加这两个字符串并发送到“display”(标签)
但是还有一个输入按钮。这清除了显示(因此用户可以输入新号码)这是一个计算器btw!
- (IBAction)enterPressed{
[self.brain pushOperand:[self.display.text doubleValue]];
self.userIsInTheMiddleOfEnteringANumber = NO;
我想要的是显示一个“历史”标签,显示输入的所有数字 - 我还不太清楚如何获得字符串我也保存了“历史记录”,不像显示那样重置。这可能是由我提出的不好,但任何提示都值得赞赏。我还在学习目标 - ...
答案 0 :(得分:0)
如果我理解正确,您需要在按下回车键后保存号码。为此,您需要在类中添加NSMutableArray类型的属性。然后在方法中执行:
- (IBAction)enterPressed {
[myHistoryArrayAttrib addObject: self.display.text];
[self.brain pushOperand:[self.display.text doubleValue]];
self.userIsInTheMiddleOfEnteringANumber = NO;
//after this you can clear your display
self.display.text = nil;
}
就是这样。
答案 1 :(得分:0)
我没有很好地理解你,但有一点我相信,如果你想保存你的数据(不是很大),你应该使用NSUserDeafult。使用- (void)setObject:(id)anObject forKey:(id)aKey;
保存数据。
您想要了解历史记录,如果您想保存最新的历史记录,可以使用- (NSString *)stringForKey:(NSString *)defaultName;
来获取您保存的字符串。如果要保存整个历史记录,可以使用- (NSArray *)arrayForKey:(NSString *)defaultName;
来获取保存的数组。
举个例子。如何保存字符串
if([[NSUserDefaults standardUserDefaults] stringForKey:theKey] == nil)
{
NSString *defaultValue = [NSString stringWithString:theStringYouWantedSave];
NSDictionary *saveDict = [NSDictionary dictionaryWithObject:defaultValue forKey:theKey];
[[NSUserDefaults standardUserDefaults] registerDefaults:saveDict];
}
else
{
[[NSUserDefaults standardUserDefaults] setObject:theStringYouWantedSave forKey:theKey];
}
并得到这样的
if([[NSUserDefaults standardUserDefaults] stringForKey:theKey]!=nil)
{
yourHistoryString = [[NSUserDefaults standardUserDefaults] stringForKey:theKey];
}