我剛進入Objective-C(Java是我的主要OO語言)。爲什麼在接口中聲明Objective-C實例變量?
定義對象的實例變量的接口,而不是類似乎有些奇怪。我習慣於一個接口是一個公共的API定義,除了方法簽名之外沒有任何東西(這裏不包括常量)。
是有一些原因,狀態接口中定義的(即使是私有的)和行爲是在類中定義。看起來很奇怪,因爲對象是狀態+行爲,所以定義會被分成兩個獨立的地方。
它是一個設計的好處是某種方式?在Objective-C中你只是被迫處理的後期問題中的痛苦?一個非問題,只是不同?關於爲什麼這樣做的背景?
或者你可以把一個類的對象狀態,我只是還沒有打在我的書的部分呢?
imo,這是正確的答案,因爲它實際上回答了這個問題:Why - kudos和一個贊成Jeremy – Rhubarb 2011-08-26 18:16:47
隨着Objective-C 2.0,你不再需要在'@ interface'中聲明_anything_。在.m文件中聲明擴展中的私有方法和屬性('@interface MyClassName()')。當然,您可以通過運行時找到這些方法和屬性定義,但這與Java的大部分反射沒有什麼不同。 – 2013-11-22 05:49:33
該功能實施之前的答案日期。我已經添加了一個註釋來說明這一點。 – JeremyP 2013-11-22 14:26:38