我是初學者(編程時)學習Objective-C。 Xcode不會讓我從NSDate對象分配返回值;我對此感到困惑。爲什麼我不能將timeIntervalSince1970返回值存儲到指針?
NSDate *now = [NSDate date];
long seconds = [now timeIntervalSince1970];
如果我用一個指針來保存秒:
long *seconds = [now timeIntervalSince1970];
我看到的錯誤:
Initializing 'long *' with an expression of incompatible type 'NSTimeInterval' (aka 'double')
爲什麼我不能說「給我的now.timeIntervalSince1970
返回值並堅持在這個地址「?
另一個問題是,爲什麼我不能初始化一個對象並在不需要指針的情況下使用它?這不起作用。
NSDate dateObject = [NSDate date];
我知道我的問題可能有一個非常簡單的答案,但書中並沒有解釋任何的「爲什麼它以這種方式工作」的問題。
感謝。首先我聽說過'原始'類型和'對象'類型。我會冒險猜測對象的接收消息,而原始類型不接受?所以我們使用指針來存儲對象的地址? – 2014-10-31 11:41:44
我想我很困惑,因爲這本書是以C開頭的。現在看來,Objective-C的規則正在發生變化,沒有說明爲什麼。 – 2014-10-31 11:44:05
@JumbalayaWanton這是一個很大的主題,你必須研究,但是所有的對象都是由基元構建的,而且這些對象必須動態分配(類似於我所展示的'malloc()'代碼),並且對象接收消息。 – trojanfoe 2014-10-31 11:44:48