0
我有這個代碼,我複製我需要記住的浮動。如何正確複製並返回一個CGFloat
- (void) rememberThisFloatForLater:(CGFloat)floatToRemember {
self.rememberedFloat = &(floatToRemember);
}
這裏是self.rememberedFloat在頭文件...
@property (assign) CGFloat *rememberedFloat;
我的問題就在這裏,當我嘗試返回記住的浮動。當我返回時,我得到6.92867051318e-310,我應該得到3.14159265359,因爲這是floatToRemember等於什麼。我哪裏錯了?
- (CGFloat) floatYouShouldRemember {
return *(self.rememberedFloat);
}
編輯:我明白你現在說的話。我拿走了標題中的指針,並且在下面的兩個方法中改變了它。感謝您指出我的簡單錯誤:) – Jon 2014-09-28 23:51:41
可能更好,但這是正確的。基元足夠小,可以直接訪問,而不是通過引用,因此只需將它們複製即可。有時候你需要一個指針作爲方法參數的基元,但這是一個更高級的用例。 – axiixc 2014-09-28 23:52:55
簡短的答案是CGFloat是一種主要類型 - 你不需要做任何事情來複制它。只需分配它。 – Paulw11 2014-09-28 23:54:12