Mar*_*eau 1137
你可以检查一下[string length] == 0.这将检查它是否是有效但空字符串(@"")以及它是否为零,因为调用lengthnil也将返回0.
Mat*_*t G 126
马克的回答是正确的.但我会借此机会包括一个指向威尔希普利的广义的指针isEmpty,他在博客上分享了这个指针:
static inline BOOL IsEmpty(id thing) {
return thing == nil
|| ([thing respondsToSelector:@selector(length)]
&& [(NSData *)thing length] == 0)
|| ([thing respondsToSelector:@selector(count)]
&& [(NSArray *)thing count] == 0);
}
Run Code Online (Sandbox Code Playgroud)
SEQ*_*eam 93
第一种方法是有效的,但如果您的字符串有空格(@" "),则不起作用.因此,在测试之前必须清除此空白区域.
此代码清除字符串两侧的所有空格:
[stringObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ];
Run Code Online (Sandbox Code Playgroud)
一个好主意是创建一个宏,因此您不必键入此怪物行:
#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]
Run Code Online (Sandbox Code Playgroud)
现在你可以使用:
NSString *emptyString = @" ";
if ( [allTrim( emptyString ) length] == 0 ) NSLog(@"Is empty!");
Run Code Online (Sandbox Code Playgroud)
Rob*_*Rob 32
一个我所见过的最好的解决方案(比马特G公司的一个更好的)是这种改进的内联函数我拿起一些Git的枢纽回购(威尔·希普利的一个,但我不能找到链接):
// Check if the "thing" passed is empty
static inline BOOL isEmpty(id thing) {
return thing == nil
|| [thing isKindOfClass:[NSNull class]]
|| ([thing respondsToSelector:@selector(length)]
&& [(NSData *)thing length] == 0)
|| ([thing respondsToSelector:@selector(count)]
&& [(NSArray *)thing count] == 0);
}
Run Code Online (Sandbox Code Playgroud)
小智 16
你应该更好地使用这个类别:
@implementation NSString (Empty)
- (BOOL) isWhitespace{
return ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]length] == 0);
}
@end
Run Code Online (Sandbox Code Playgroud)
use*_*951 12
我把它说:
@implementation NSObject (AdditionalMethod)
-(BOOL) isNotEmpty
{
return !(self == nil
|| [self isKindOfClass:[NSNull class]]
|| ([self respondsToSelector:@selector(length)]
&& [(NSData *)self length] == 0)
|| ([self respondsToSelector:@selector(count)]
&& [(NSArray *)self count] == 0));
};
@end
Run Code Online (Sandbox Code Playgroud)
问题是如果self为nil,则永远不会调用此函数.它将返回false,这是期望的.
Man*_*ani 11
只需将您的字符串传递给以下方法:
+(BOOL)isEmpty:(NSString *)str
{
if(str.length==0 || [str isKindOfClass:[NSNull class]] || [str isEqualToString:@""]||[str isEqualToString:NULL]||[str isEqualToString:@"(null)"]||str==nil || [str isEqualToString:@"<null>"]){
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
cho*_*own 10
另一种选择是,以检查它是否等于@""与isEqualToString:像这样:
if ([myString isEqualToString:@""]) {
NSLog(@"myString IS empty!");
} else {
NSLog(@"myString IS NOT empty, it is: %@", myString);
}
Run Code Online (Sandbox Code Playgroud)
只需检查您的字符串长度
if (!yourString.length)
{
//your code
}
Run Code Online (Sandbox Code Playgroud)
发送给 NIL 的消息将返回 nil 或 0,因此无需测试 nil :)。
快乐编码...
只需使用if else以下条件之一:
方法1:
if ([yourString isEqualToString:@""]) {
// yourString is empty.
} else {
// yourString has some text on it.
}
Run Code Online (Sandbox Code Playgroud)
方法2:
if ([yourString length] == 0) {
// Empty yourString
} else {
// yourString is not empty
}
Run Code Online (Sandbox Code Playgroud)
即使这是一个Objective C问题,我需要NSString在Swift中使用,所以我也会在这里提供一个答案.
let myNSString: NSString = ""
if myNSString.length == 0 {
print("String is empty.")
}
Run Code Online (Sandbox Code Playgroud)
或者如果NSString是可选的:
var myOptionalNSString: NSString? = nil
if myOptionalNSString == nil || myOptionalNSString!.length == 0 {
print("String is empty.")
}
// or alternatively...
if let myString = myOptionalNSString {
if myString.length != 0 {
print("String is not empty.")
}
}
Run Code Online (Sandbox Code Playgroud)
正常的Swift String版本是
let myString: String = ""
if myString.isEmpty {
print("String is empty.")
}
Run Code Online (Sandbox Code Playgroud)
另请参阅:检查Swift中的空字符串?
可能这个答案是已经给出的答案的副本,但我按照检查条件的顺序做了一些修改和更改.请参考以下代码:
+(BOOL)isStringEmpty:(NSString *)str
{
if(str == nil || [str isKindOfClass:[NSNull class]] || str.length==0) {
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
264234 次 |
| 最近记录: |