Objective c 目标C:函数“isEmptyString”的隐式声明在c99中无效

Objective c 目标C:函数“isEmptyString”的隐式声明在c99中无效,objective-c,boolean,ternary,Objective C,Boolean,Ternary,以下是提到的功能:- -(BOOL) isEmptyString :(NSString*) string { if([string isEqualToString:@""] || [string isKindOfClass:[NSNull class]]) { return true; } return false; } 按如下方式使用此功能时:- BOOL d = isEmptyString(@"data"); 提出上述问题不知道为什么。有人能解释一

以下是提到的功能:-

-(BOOL) isEmptyString :(NSString*) string {
    if([string isEqualToString:@""] || [string isKindOfClass:[NSNull class]]) {
        return true;
    }
    return false;
}
按如下方式使用此功能时:-

BOOL d = isEmptyString(@"data");

提出上述问题不知道为什么。有人能解释一下我做错了什么。

你在objective-c中声明了这个函数,但你调用它的时候就好像它是一个c函数一样

你要么改变声明,要么改变你称之为声明的方式

假设您在同一个.m文件中,您应该这样调用它


BOOL d=[self isEmptyString:@data]

您在objective-c中声明了该函数,但您调用它的方式就好像它是一个c函数一样

你要么改变声明,要么改变你称之为声明的方式

假设您在同一个.m文件中,您应该这样调用它


BOOL d=[self-isEmptyString:@data]

谢谢阿里斯。事实上,我更喜欢swift,我知道objective-c中没有默认运算符。没问题!你说的默认运算符是什么意思???在swift中,违约运营商是理解的。那么,在objective-c中是否有类似的违约行为?谢谢Aris。事实上,我更喜欢swift,我知道objective-c中没有默认运算符。没问题!你说的默认运算符是什么意思???在swift中,违约经营者是理解的。那么,在objective-c中是否有类似的违约行为?