NSString与NSInteger

时间:2012-10-29 23:46:54

标签: objective-c macos nsstring int nsinteger

如何将我的NSInteger放入我的NSString stringWithFormat:

我的代码:

-(IBAction)main:(id)sender
{
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:@"return the clipboard"];


NSAppleEventDescriptor *clipboardTXT = [[script executeAndReturnError:nil]stringValue];

NSInteger *length = [clipboardTXT.stringValue length];

NSString *mystring = [NSString stringWithFormat:@"%", length];


[mybutton setTitle:mystring];
}

P.S。我试过this,但它对我不起作用。

output

2 个答案:

答案 0 :(得分:2)

使用%d说明符。

- (IBAction)main:(id)sender
{
    NSAppleScript *script = [[NSAppleScript alloc] initWithSource:@"return the clipboard"];


    NSAppleEventDescriptor *clipboardTXT = [script executeAndReturnError:nil];

    NSInteger length = [[clipboardTXT stringValue] length];

    NSString *mystring = [NSString stringWithFormat:@"%d", length];

    [mybutton setTitle:mystring];
}

修改

你的问题与你提出的问题完全不同。你为什么不第一次包含错误信息?浪费时间......

它显然指出问题必须在您的stringValue电话周围。如果您使用Google搜索它,您肯定会发现此错误消息表示您要发送stringValue的对象,但没有这样的方法。 executeAndReturnError会返回NSAppleEventDescriptor个实例。然后,您拨打stringValue,这将返回NSString,而不是NSAppleEventDescriptor。之后,您正在向stringValue发送NSString消息(它没有这样的方法)。请参阅我编辑的代码。

答案 1 :(得分:1)

2件事,你想使用%d说明符,你需要删除长度声明中的*

NSInteger length = [clipboardTXT.stringValue length];
NSString *mystring = [NSString stringWithFormat:@"%d", length];