这可能是一个天真的问题,但是,如何获得NSTextField
的stringValue
的长度?我试图如何获取NSTextField的stringValue的字符串长度?
int len = strlen((char *)[textField stringValue]);
其中textField
是NSTextField
,但它总是返回6(指针的大小?)。除此之外,我确信有更多的Objective-C方式来做我所追求的。
这可能是一个天真的问题,但是,如何获得NSTextField
的stringValue
的长度?我试图如何获取NSTextField的stringValue的字符串长度?
int len = strlen((char *)[textField stringValue]);
其中textField
是NSTextField
,但它总是返回6(指针的大小?)。除此之外,我确信有更多的Objective-C方式来做我所追求的。
NSUInteger length = [[textField stringValue] length];
在这里实现了关键的东西是一个NSString不是一个char *。要获得真正的C风格字符*,您需要执行如下操作:
const char* ptr = [[textField stringValue]
cStringUsingEncoding:[NSString defaultCStringEncoding]];
更新为使用默认编码而不是假定ASCII。
stringValue是NSString实例。 您可以使用下面的代码:
NSUInteger len = [[textField stringValue] length];
当你使用'strlen'(即在C字符串),你应该使用'size_t'类型来保存它的返回值。至少,这是一个无符号类型,而'int'(不是其他限定)被签名。当返回值超出签名类型的正范围时,这将变得很重要,这会将其放在负范围内,并使比较表达式失败。 – 2009-10-18 10:27:02