說我有下面的函數返回一個CLLocationCoordinate2D
,這僅僅是一個struct
有兩個double
S(命名爲longitude
和latitude
)在其:Objective-C中的返回結構究竟如何工作?
- (CLLocationCoordinate2D)getCoordinateForHouse:(House *)house
{
CLLocationCoordinate2D coordToReturn;
coordToReturn.latitude = // get house's latitude somehow
coordToReturn.longitude = // get house's longitude somehow
return coordToReturn;
}
可我基本上把這個struct
就像任何其他的原始類型?舉例來說,如果我在代碼中其他地方像這樣調用上面的函數:
CLLocationCoordinate2D houseCoord =
[someClassThatTheAboveFunctionIsDefinedIn getCoordinatesForHouse:myHouse];
被簡單地複製到houseCoord
(就像任何其他原始將採取行動),這是從函數的返回值,對不對?我不必擔心CLLocationCoordinate2D
有沒有在別處被銷燬?
現在看來很明顯,我認爲這可能是這樣,但我只需要確認。
是的,我之前看到過,我想我的問題更多地是關於結構如何工作。他們是否可以像原始人一樣對待(當然除了能夠點他們並獲得不同的領域)。 – Tim
是的,結構值應該像原語一樣對待。在某些情況下,您可能需要使用malloc和free來執行手動內存管理,但在這種情況下,您將有一個指向此結構的指針,在這裏不是這種情況。 – titaniumdecoy
好酷,謝謝。一個快速跟進:結構可以有指針嗎?指針是原始的,還是它們?指針指向的是指它是否被認爲是一個原語,這有什麼關係嗎? – Tim