use*_*951 6 objective-c xcode4.5
NSString * strNil= [NSString stringWithFormat:@"%@",nil];
Run Code Online (Sandbox Code Playgroud)
结果是strNil是@"null"
好吧,我希望它是@""
我想要一个优雅的解决方案.我知道我可以创建emptyStringIfNil类别方法.但这不起作用,因为该函数将返回nil,而不是@"".
你为此做了什么?
基本上我想要这样的陈述
NSString * result =[NSString stringWithFormat:@"http://%@/business/api/addOrEditBusiness.php?flag=%@&title=%@&building=%@&latitude=%@&longitude=%@&website=%@&street=%@&city=%@&country=%@%@&originalid=%@&inbuildingaddress=%@&email=%@&zip=%@%@&userid=%@%@",urlServer,strFlag,biz.Title.RobustURLEncodedString,biz.buildingName.RobustURLEncodedString,@(coord.latitude),@(coord.longitude),biz.Website.RobustURLEncodedString,biz.Street.RobustURLEncodedString, biz.City.Name.RobustURLEncodedString, biz.City.Country.Name.RobustURLEncodedString,strPhonesParameter,biz.ID.RobustURLEncodedString,biz.InBui
Run Code Online (Sandbox Code Playgroud)
每次字符串为零时显示为空
例如,如果streetAddress为nil,我想要&street =&city = Tokyo而不是street =(null)&city = Tokyo
我不知道是否有更简单的方法,但你可以放:
(strName ? strName : @"")
Run Code Online (Sandbox Code Playgroud)
或者,更简单地说你可以使用:
strName?:@""
Run Code Online (Sandbox Code Playgroud)
它做了完全相同的事情.
对于每个字符串,如果字符串不是nil,则只将字符串放在输出中,否则为空字符串.
您可以使用C函数:
static inline NSString* emptyStringIfNil(NSString *s) {
return s ? s : @"";
}
Run Code Online (Sandbox Code Playgroud)
然后[NSString stringWithFormat:@"%@", emptyStringIfNil(nil)]返回一个空字符串.
你也可以添加一个类方法NSString,但我个人更喜欢C方法.
@interface NSString (EmptyIfNil)
+ (NSString*)emptyStringIfNil:(NSString*)s;
@end
@implementation NSString (EmptyIfNil)
+ (NSString*)emptyStringIfNil:(NSString*)s {
return s ? s : @"";
}
@end
Run Code Online (Sandbox Code Playgroud)
然后使用 [NSString emptyStringIfNil:yourString]
| 归档时间: |
|
| 查看次数: |
2228 次 |
| 最近记录: |