相关疑难解决方法(0)

检查Swift中的空字符串?

在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

153
推荐指数
8
解决办法
13万
查看次数

问号'含义'是什么意思?在快速?

在Swift编程中,我发现了一些带有对象的问号.

var window: UIWindow?
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释它的使用吗?

ios swift

81
推荐指数
2
解决办法
5万
查看次数

NSPredicate相当于SQL的LIKE

我正在寻找一种方法NSPredicate来设置LIKE条件来获取对象.除此之外,一个OR也是有用的.我正在尝试做一些事情,如果用户搜索"詹姆斯"我可以写一个NSPredicate将做相当于:

select * from users where firstname LIKE '%James%' OR lastname LIKE '%James%';
Run Code Online (Sandbox Code Playgroud)

iphone cocoa cocoa-touch core-data nspredicate

50
推荐指数
3
解决办法
3万
查看次数

NSString为空

如何测试NSString是否为空?或所有空格或零?用一个方法调用?

string iphone objective-c nsstring ios

36
推荐指数
3
解决办法
3万
查看次数

nil和(NSString*)[NSNull null]等效于检查空的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)

参考文章

  1. nil,Nil和null之间的差异

  2. 如何检测NSString是否为空?

  3. Apple的NSNull类参考

  4. 如何在Objective C中测试字符串是否为空?

更新 - 测试结果

我的简单测试结果表明上述两个版本有不同的行为:

  1. 何时aString初始化然后分配nil:

    false 在版本1中表达,

    true 在版本2中表达.

  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)

null objective-c nsstring nsnull

8
推荐指数
2
解决办法
2万
查看次数

Objective-C isEmpty helper突然停止构建

我有一个美丽而方便的帮助内联函数,我在一个项目中(原来它的根源在这里这里):

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和其他有用...我现在的问题是我把它带到另一个项目(我将使用的静态框架/库)并且有以下问题:阻止我的项目建设:

找到了名为'count'的多个方法,其结果,参数类型或属性不匹配

我正在使用相同(最新)版本的xCode,因此不确定可能会阻止这一方面而不是另一方面的差异......项目设置在两个项目中明显不同(如上所述,是一个框架,一个是常规项目)但是会这样做吗?

提前致谢!


POST-SOLUTION-EDIT用于未来访问:

按住命令并单击方法或属性以获取编译器正在看到的所有实例的下拉...您可能具有冲突的返回类型.

xcode objective-c ios

5
推荐指数
1
解决办法
294
查看次数

字符串isNullOrEmpty作为类别

我正在尝试创建一个检查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)

iphone null objective-c ios objective-c-category

2
推荐指数
1
解决办法
3070
查看次数

Cocoa是否具有类似于.NET的String.IsNullOrEmpty的功能?

可能重复:
如何在Objective C中测试字符串是否为空?

我一直在查看Apple的文档中的一个相对基本的函数,我无法想象它们没有函数来查看字符串是否为空/空或空白空间.我也谷歌搜索过这个.我发现的唯一的事情是人们就如何创建自己的函数来测试空字符串提供建议.

在.NET中,我只能说

If (String.IsNullOrEmpty(txtTextBox.Text)) {
// Action
}
Run Code Online (Sandbox Code Playgroud)

Cocoa是否与.NET的String类中的IsNullOrEmpty等效?

.net string cocoa isnullorempty

2
推荐指数
1
解决办法
224
查看次数