-(IBAction)Back:(id)sender {
NSString *backspace = [conv_display stringValue];
float lengthofstring = backspace.length;
if (lengthofstring == 0)
return;
backspace = [backspace substringToIndex:lengthofstring - 1];
[conv_display setStringValue:backspace];
}
A quick and dirty fix to your code would look something like this:
Code:-(IBAction)Back:(id)sender { NSString *backspace = [conv_display stringValue]; float lengthofstring = backspace.length; if (lengthofstring == 0) return; backspace = [backspace substringToIndex:lengthofstring - 1]; [conv_display setStringValue:backspace]; }
Reason is that you were thinking you got a NSString in the first line, but you were actually getting a NSTextField.
You would have found this easily if you used the actual class names instead of id for your IBOutlets.
It's always a good idea to avoid id unless you really have a good reason to use it.
Hope this helps you to continue
// Alex
A quick and dirty fix to your code would look something like this:
Code:-(IBAction)Back:(id)sender { NSString *backspace = [conv_display stringValue]; float lengthofstring = backspace.length; if (lengthofstring == 0) return; backspace = [backspace substringToIndex:lengthofstring - 1]; [conv_display setStringValue:backspace]; }
Reason is that you were thinking you got a NSString in the first line, but you were actually getting a NSTextField.
You would have found this easily if you used the actual class names instead of id for your IBOutlets.
It's always a good idea to avoid id unless you really have a good reason to use it.
Hope this helps you to continue
// Alex