Ios 如何检查字符串是否更改

Ios 如何检查字符串是否更改,ios,objective-c,Ios,Objective C,我对iOS编程非常陌生,但我需要它来测试原型。 我通过蓝牙接收到一个值,当按下物理原型上的按钮时,该值会发生变化 在我的应用程序中,按下按钮后必须执行一个操作,因此我需要知道该值何时更改 我尝试了我能想到的一切,到处寻找,但没有找到解决办法。 这是我当前的代码: -(void)bean:(PTDBean *)bean didUpdateScratchNumber:(NSNumber *)number withValue:(NSData *)data{ int value = *(int*)([d

我对iOS编程非常陌生,但我需要它来测试原型。 我通过蓝牙接收到一个值,当按下物理原型上的按钮时,该值会发生变化

在我的应用程序中,按下按钮后必须执行一个操作,因此我需要知道该值何时更改

我尝试了我能想到的一切,到处寻找,但没有找到解决办法。 这是我当前的代码:

-(void)bean:(PTDBean *)bean didUpdateScratchNumber:(NSNumber *)number withValue:(NSData *)data{
int value = *(int*)([data bytes]);
NSString *lastvalue = nil;
NSString *newValue = [NSString stringWithFormat:@"%d", value];
    NSLog(@"ScratchWaarde: %d", value);
if ([newValue isEqualToString:lastvalue]) {
    NSLog(@"Last Value: %@", lastvalue);
    }else{
        NSLog(@"Pushed");
        lastvalue = newValue;
    }
}

谢谢你的帮助

你的代码毫无意义。你是说:

NSString *lastvalue = nil;
NSString *newValue = // ...
if ([newValue isEqualToString:lastvalue]) {
在任何情况下,
newValue
都不会等于
lastValue
,因为
lastValue
保证为零,因为这是您在第一行中设置它的值(而
newValue
,因为您将它设置为实际的NSString,保证不为零)

所以,虽然我不清楚你到底想实现什么,但这显然不是。与其说是编程问题,不如说是简单的逻辑思维问题。程序只能做你让它做的事情,而你让它做的事情是愚蠢的


(很可能你没有掌握的是,
lastvalue
对于这个方法来说是纯局部的,所以每次调用你的方法时它都是新的。如果你想要一个持久的
lastvalue
,你需要一个类的全局属性,而不是局部变量。)

是的,看起来OP希望lastValue在对象上保持为状态,所以

// in this class's interface
@property(strong,nonatomic) NSString *lastValue;

-(void)bean:(PTDBean *)bean didUpdateScratchNumber:(NSNumber *)number withValue:(NSData *)data{

    // it looks like the OP is trying to get a string from the data, so...
    NSString *newValue = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

    NSLog(@"ScratchWaarde: %d", value);
    if ([newValue isEqualToString:self.lastvalue]) {
        NSLog(@"Last Value: %@", self.lastvalue);
    } else {
        NSLog(@"Pushed");
        self.lastvalue = newValue;
    }
}

你在编程方面也是新手吗?如果是这样,你可能会更乐意学习Swift,而不是尝试在Objective-C中这样做。Objective-C可能让你感到困惑。如果
lastValue
是一个局部变量,那么它会全局保持其值,你会怎么想?你对每种类型的编程都很陌生,不仅仅是iOS,huhh?我知道我发布的代码没有意义,在开始使用Objective-C之前,我只有一些处理经验,所以我只是试图用我有限的知识找出如何让它工作。我知道局部变量不起作用,但是我没有考虑为类创建一个全局属性,这听起来很有用,我将对此进行研究!