這可能是一個天真的問題,但是,如何獲得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