2011-06-27 103 views
0

我已經花了整整一天的時間在這方面做了很多工作,重寫了很多次,試圖讓我的腦海裏浮現出它。NSDate自動發佈導致錯誤的exe文件錯誤。 iPhone

我有一組在頭

@property (nonatomic, retain)NSDate *time; 

上查看沒有負載我從數據庫中讀取一個字符串聲明的日期,將其轉換爲一個日期,它設置這個變量。

NSDateFormatter *dateFormatter =[[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setDateFormat:@"dd/MMMM/yyyy"]; 
time=[dateFormatter dateFromString:datetime]; 

如果我NSLog時間我得到預期的日期(雖然不是正確的格式)。如果我然後在視圖中進一步使用NSDate,那麼我會得到一個錯誤的exe錯誤,或者由於時間錯誤=無。

我不明白它幾乎就像它不保留它。

雖然解決問題的方法是在IBAction中創建一個新日期,並嘗試複製上面的代碼,但是它需要的地方和我遇到同樣的問題。我認爲這是dateformat問題,但我格式化它原來寫成字符串的方式。

我在做什麼錯了?我不能在這一天再放鬆一天。

歡呼

回答

2

你需要的屬性爲self.time = [dateFormatter dateFromString:datetime];[self setTime: [dateFormatter dateFromString:dateTime]]

如果您只是使用=而不使用self來指定它,它將不會保留它,它只會傳輸指針。使用點運算符將使它保留它。

+0

非常感謝。討厭這件事很簡單。這就是爲什麼!非常感激。 – Dan

0

您需要使用:self.time = [dateFormatter dateFromString:datetime];

1

的問題是,你沒有設置該屬性。 time在那裏沒有使用點符號。你要麼必須編寫爲(假定財產自我存在的),兩種方式是一個:

self.time = [dateFormatter dateFromString:datetime]; 

[self setTime: [dateFormatter dateFromString:datetime]]; 
1

你需要將其分配到使用

self.time = [dateFormatter dateFromString:datetime]; 

否則它不會保留

+0

哇 - 1分鐘內四個幾乎相同的答案:-) –

1

你的財產嘗試使用self.time,這將通過生成的setter方法,這將保留日期,目前你只是將它分配給實例變量。