2016-06-14 4 views
0

Ich habe eine unten util-Methode in meinem Projekt. Ich habe Gesicht kein Problem in früheren Versionen von iOS 10.Collection-Element des Typs 'CFTypeRef _Nullable' (aka 'const void *') ist kein Objective-C-Objekt

+ (CGRect)boundsRectWithSize:(id)objView 
{ 
    return [[objView text] boundingRectWithSize:CGSizeMake([objView bounds].size.width, CGFLOAT_MAX) 
             options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading) 
            attributes:@{ NSFontAttributeName : [objView font]}//Issue in this line 
             context: nil]; 
} 

enter image description here

objView kann von UIlabel, UITextView, sein UItextField

aber in iOS 10 Anwendung kompiliert nicht mit folgenden Fehler

Collection element of type 'CFTypeRef _Nullable' (aka 'const void *') is not an Objective-C object 

Antwort

2

Zuerst dachte ich, es war ein UILabel, also sagte ich, es in Attribute UILabel zu werfen Wörterbuch. Es kann aber vom Typ UILabel, UITextView und UITextField sein, wie Sie gesagt haben. So können Sie Schriftart zuerst mit valueForKey: Methode erhalten und diese Schriftart dann im Attributwörterbuch verwenden.

+ (CGRect)boundsRectWithSize:(id)objView 
    { 
     UIFont *font= (UIFont *)[objView valueForKey:@"font"]; 
     return [[objView text] boundingRectWithSize:CGSizeMake([objView bounds].size.width, CGFLOAT_MAX) 
              options:(NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading) 
             attributes:@{ NSFontAttributeName : font}//Issue in this line 
              context: nil]; 
    } 
Verwandte Themen