在Objective C中,可以执行以下操作来检查字符串:
if ([myString isEqualToString:@""]) {
NSLog(@"myString IS empty!");
} else {
NSLog(@"myString IS NOT empty, it is: %@", myString);
}
Run Code Online (Sandbox Code Playgroud)
如何在Swift中检测空字符串?
在Swift编程中,我发现了一些带有对象的问号.
var window: UIWindow?
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释它的使用吗?
我正在寻找一种方法NSPredicate来设置LIKE条件来获取对象.除此之外,一个OR也是有用的.我正在尝试做一些事情,如果用户搜索"詹姆斯"我可以写一个NSPredicate将做相当于:
select * from users where firstname LIKE '%James%' OR lastname LIKE '%James%';
Run Code Online (Sandbox Code Playgroud) 如何测试NSString是否为空?或所有空格或零?用一个方法调用?
我有一个NSString对象,
NSString *aString;
Run Code Online (Sandbox Code Playgroud)
那么以下两个版本是等价的吗?
版本1:
if ( (NSString *)[NSNull null] == aString )
{
// Logic handling
}
Run Code Online (Sandbox Code Playgroud)
版本2:
if ( nil == aString )
{
// Logic handling
}
Run Code Online (Sandbox Code Playgroud)
我的简单测试结果表明上述两个版本有不同的行为:
何时aString初始化然后分配nil:
false 在版本1中表达,
true 在版本2中表达.
何时aString使用值初始化@"".
false 在版本1中表达,
false 在版本2中表达.
所以很明显,这两个版本的行为并不相同.
测试代码:
NSString *aString = nil;
NSString *bString = [NSString stringWithFormat:@""];
if ((NSString *)[NSNull null] == aString) {
NSLog(@"a1 - …Run Code Online (Sandbox Code Playgroud) 我有一个美丽而方便的帮助内联函数,我在一个项目中(原来它的根源在这里和这里):
static inline BOOL isEmpty(id thing) {
return !thing
|| [thing isKindOfClass:[NSNull class]]
|| ([thing respondsToSelector:@selector(length)] && [((id)thing) length] == 0)
|| ([thing respondsToSelector:@selector(count)] && [((id)thing) count] == 0);
}
static inline BOOL isNotEmpty(id thing) {
return !isEmpty(thing);
}
Run Code Online (Sandbox Code Playgroud)
一切顺利.
它对于检查NSString,NSData,NSArray,NSDictionary,NSSet和其他有用...我现在的问题是我把它带到另一个项目(我将使用的静态框架/库)并且有以下问题:阻止我的项目建设:

我正在使用相同(最新)版本的xCode,因此不确定可能会阻止这一方面而不是另一方面的差异......项目设置在两个项目中明显不同(如上所述,是一个框架,一个是常规项目)但是会这样做吗?
提前致谢!
按住命令并单击方法或属性以获取编译器正在看到的所有实例的下拉...您可能具有冲突的返回类型.
我正在尝试创建一个检查null/nil/empty字符串的方法,并且我试图让它作为一个类别工作,但没有运气.
我正在使用此代码,基于本主题中的答案:
@implementation NSString (NSStringExtension)
- (BOOL)isNullOrEmpty {
return self == nil ||
self == (id)[NSNull null] ||
[@"" isEqualToString:self] ||
[[self stringByReplacingOccurrencesOfString:@" " withString:@""] length] == 0||
[self isEqualToString:@"(null)"]
|| ([self respondsToSelector:@selector(length)] && [(NSData *) self length] == 0)
|| ([self respondsToSelector:@selector(count)] && [(NSArray *) self count] == 0)
|| [[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0;
}
@end
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试使用它时,这就是我得到的:
NSLog([@"" isNullOrEmpty] ? @"1":@"0"); // prints 1
NSString *s1 = nil;
NSLog([s1 isNullOrEmpty] ? @"1":@"0"); // prints 0 …Run Code Online (Sandbox Code Playgroud) 我一直在查看Apple的文档中的一个相对基本的函数,我无法想象它们没有函数来查看字符串是否为空/空或空白空间.我也谷歌搜索过这个.我发现的唯一的事情是人们就如何创建自己的函数来测试空字符串提供建议.
在.NET中,我只能说
If (String.IsNullOrEmpty(txtTextBox.Text)) {
// Action
}
Run Code Online (Sandbox Code Playgroud)
Cocoa是否与.NET的String类中的IsNullOrEmpty等效?
ios ×4
objective-c ×4
iphone ×3
cocoa ×2
nsstring ×2
null ×2
string ×2
swift ×2
.net ×1
cocoa-touch ×1
core-data ×1
nsnull ×1
nspredicate ×1
xcode ×1