2017-10-17 92 views
0

我想在我的Objective-C頭文件中定義一個類C結構體,它只包含_ivars,但是,因爲這個頭文件只有在那裏沒有對應的@implementation。這甚至可能嗎? (我也不想逼頭文件includers添加@implementation,因爲這是一個簡單的描述符定義)@ @接口屬性只需要@implementation?

我想它是@interface定義,以便誰喜歡的用戶對其進行擴展和多個數據成員添加到它可以這樣做(再次,只有_ivars)。但是,如果您想到某件事,其他建議可能會起作用。

+0

你想定義一個結構體或類? – Willeke

+0

@Willeke我希望它是一個類,所以其他人可以擴展它的類別,如果他們想。 – sramij

+0

[我可以'擴展'在C中的結構嗎?](https://stackoverflow.com/questions/7370533/can-i-extend-a-struct-in-c) – Willeke

回答

2

是,必須有申報由所述編譯器編譯的類,以使類的@implementation在運行時實現(包括存儲備份的@property聲明。

一旦編譯,該類不能擴展了額外的@properties,它們被自動備份(它可以通過類別擴展,但是你自己存儲並且通常不推薦類的分類擴展)

+0

謝謝,我正在跳,我失蹤一些東西,如果它純粹是一個C結構風格但是包含在「接口」中,我仍然可以在沒有「實現」的情況下完成。 (順便說一句,我不介意用類別進行擴展) – sramij

+0

您可以在子類中添加屬性。 – Willeke

+0

@Willeke使用類(又名接口)的問題是我需要爲它添加一個實現,並且我試圖避免這種情況,因爲我打算只有一個頭文件。 – sramij