2017-04-04 85 views
-3

請幫助我,我試圖將UITextField轉換爲NSDate。錯誤在哪裏?無法識別的選擇器發送到實例

.H

@property (weak, nonatomic) UITextField *finishDateField; 
@property (strong,nonatomic) NSDate  *endDate; 

的.m

-(void) getDate{ 

    SaveAndLoadClass* Loader = [[SaveAndLoadClass alloc] init]; 
    [Loader loadSettings]; 
    self.finishDateField = [Loader dateField]; 
    [self firstCalculate]; 
} 
-(void)firstCalculate{ 
     NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
     [dateFormat setDateFormat:@"dd MMMM yyyy"]; 
     self.endDate = [dateFormat dateFromString: self.finishDateField.text]; 
     NSLog(@"datefromField:%@",[dateFormat stringFromDate: self.endDate]); 
} 

- [__ NSCFString文本]:無法識別的選擇發送到實例0x61000002c620 ***終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因:' - [__ NSCFString text]:無法識別的選擇器發送到實例0x61000002c620'

+0

'finishDateField'不是IBOutlet,那你是如何初始化它的? –

+0

我從另一堂課獲得了它; 'self.finishDateField = [Loader dateField];'裝載機另一個類的對象 – sLav9n

+0

如果'[Loader dateField]'返回一個字符串,那麼上面的不正確請使用'[currentlySelectedTextField setText:[Loader dateField]];'this行設置文本。它可能會刪除您的構建錯誤。 – arunjos007

回答

1

很簡單...你忘self.finishDateField

self.endDate = [dateFormat dateFromString:self.finishDateField.text];//error here 
+0

如果我這樣做,我有「構建失敗」 – sLav9n

+0

@ sLav9n它應該不會失敗檢查,如果您有項目中的任何其他錯誤或可能會嘗試清理和構建。 –

+0

也許你已經聲明瞭另一個同名「finishDateField」的屬性。仔細檢查一下。 –

0

dateFormat dateFromString:self.finishDateField後添加的.text是textfiled本身。你必須到現場的內容分配:

self.endDate = [dateFormat dateFromString:self.finishDateField.text] 
+0

如果我這樣做,我有「構建失敗」 – sLav9n

+0

- [__ NSCFString文本]:無法識別的選擇器發送到實例0x608000030700 – sLav9n

0

你是通過你的textField而不是字符串,你的代碼應該是這樣的,

self.endDate = [dateFormat dateFromString:self.finishDateField.text]; 

而第二件事你說你在文本框輸入的字符串格式爲dd MMMM yyyy格式,因爲你的日期格式化程序是這樣的,否則你不會得到日期!

+0

是的,「finishDateField」具有值「21 Jule 2015」;如果我把「.text」,構建失敗 – sLav9n

+0

顯示你的全班!你在某個地方犯了一個小錯誤! – Lion

+0

顯示,並糾正了這個問題。 – sLav9n

相關問題