2016-04-13 1 views
0

はやっています:迅速でself = self initを実行していますか?自己を返す。 objective-Cでは、self.init()と同じ効果がありますか?

self.init() 

self = self.init; 
return self; 

Objective-Cで同じ効果がありますか?

例えば、この文脈で:

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

ですこれを使う? – PeejWeej

+0

私の質問を編集して見せてください。 –

+0

実際には同等のものが 'return [self init];' – vadian

答えて

1

Objective-Cで同じスコープで指定するか、デフォルトの初期化子を呼び出すためself.init()の同等は、あなたが望んでいるものに関しては

if (date != nil) { 
    return [self initWithTimeInterval: 0 sinceDate: date]; 
} else { 
    return [self init]; 
} 
関連する問題