2016-04-13 7 views
0

Hat tun:Tut doing self = self init; Selbst zurückgeben; in Ziel-C haben die gleiche Wirkung wie self.init() in swift?

self = self.init; 
return self; 

in Objective-C haben die gleiche Wirkung wie:

self.init() 

in swift?

Zum Beispiel in diesem Zusammenhang:

else if([format.dateFormatType compare: ISO8601DateFormatType] == NSOrderedSame) { 
     NSString *isoFormat = ISO8601DateFormatType; 
     NSString *dateFormat = (isoFormat != nil) ? isoFormat : ISO8601DateFormatType; 
     NSDateFormatter *formatter = [DateFormat CustomDateFormat: dateFormat]; 
     formatter.locale = [NSLocale localeWithLocaleIdentifier: (@"en_US_POSIX")]; 
     formatter.timeZone = [NSTimeZone localTimeZone]; 
     formatter.dateFormat = dateFormat; 
     NSDate *date = [formatter dateFromString:(string)]; 
     if (date != nil){ 
      return [self initWithTimeInterval: 0 sinceDate: date]; 
     } 
     else { 
      self = self.init; 
      return self; 
     } 
    } 
+0

In welchem ​​Kontext sind Sie wollen um das zu benutzen? – PeejWeej

+0

Lassen Sie mich meine Frage bearbeiten, um Sie zu zeigen. –

+0

Eigentlich ist das Äquivalent 'return [self init];' – vadian

Antwort

1

Das Äquivalent self.init() in Objective-C einen bestimmten oder Standardinitialisierung im gleichen Umfang zu nennen, ist

if (date != nil) { 
    return [self initWithTimeInterval: 0 sinceDate: date]; 
} else { 
    return [self init]; 
} 
Verwandte Themen