mirror of
https://github.com/Instagram/IGListKit
synced 2026-05-24 01:38:26 +00:00
Add support for fallback object value of nil
Summary: This lets callers provide a fallback object value (e.g. `[NSNull null]`) for safety when the returned object is required to be non-null. Reviewed By: natestedman Differential Revision: D10504059 fbshipit-source-id: 1217755e84a927fe8cfbd0e944af55613f1f7c75
This commit is contained in:
parent
a30e87f5b0
commit
2b4ee9bd36
1 changed files with 7 additions and 3 deletions
|
|
@ -40,7 +40,11 @@ function formattedStringValueForIvarWithFormatSpecifier(iVarString:string, strin
|
|||
return "[NSString stringWithFormat:@\"" + stringFormatSpecifier + "\", " + castString + iVarString + "]";
|
||||
}
|
||||
|
||||
function objectValueForAttribute(attribute:ObjectSpec.Attribute):string {
|
||||
function nullableObjectValueWithFallback(objectValue:string, optionalFallback:string=null) {
|
||||
return (optionalFallback === null) ? objectValue : `${objectValue} ?: ${optionalFallback}`;
|
||||
}
|
||||
|
||||
function objectValueForAttribute(attribute:ObjectSpec.Attribute, optionalFallback:string=null):string {
|
||||
const iVarString:string = ObjectSpecCodeUtils.ivarForAttribute(attribute);
|
||||
const type:ObjC.Type = ObjectSpecCodeUtils.computeTypeOfAttribute(attribute);
|
||||
|
||||
|
|
@ -49,7 +53,7 @@ function objectValueForAttribute(attribute:ObjectSpec.Attribute):string {
|
|||
return formattedStringValueForIvarWithFormatSpecifier(iVarString, "%@");
|
||||
},
|
||||
NSObject: function() {
|
||||
return iVarString;
|
||||
return nullableObjectValueWithFallback(iVarString, optionalFallback);
|
||||
},
|
||||
BOOL: function() {
|
||||
return iVarString + " ? @\"YES\" : @\"NO\"";
|
||||
|
|
@ -112,7 +116,7 @@ function objectValueForAttribute(attribute:ObjectSpec.Attribute):string {
|
|||
return formattedStringValueForIvarWithFormatSpecifier(iVarString, "%@");
|
||||
},
|
||||
unmatchedType: function() {
|
||||
return "self";
|
||||
return nullableObjectValueWithFallback('self', optionalFallback);
|
||||
}
|
||||
}, type);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue