@class主要是避免#import導致死迴圈的問題
由於@class僅僅是告訴編譯器後面的名稱是乙個類,所以編譯器並不知道這個類中有哪些屬性和方法,所以在.m中使用這個類時需要import這個類,才能使用
@class僅僅是告訴編譯器,@class後面的名稱是乙個類,不會做任何的拷貝
具體使用:
有乙個person人類,人類中有乙個屬性是dog 養的狗
有乙個dog狗類,狗類中有乙個屬性是person 主人
如果上述的情況使用在.**件中使用#import則會導致死迴圈,所以在.**件中使用@class進行解決
#import @class dog;
ns_assume_nonnull_begin
@inte***ce person : nsobject
@property dog *dog;
@end
ns_assume_nonnull_end
#import "person.h"
#import "dog.h"
@implementation person
@end
#import @class person;
ns_assume_nonnull_begin
@inte***ce dog : nsobject
@property person *p;
@end
ns_assume_nonnull_end
#import "dog.h"
@implementation dog
@end
Lua 物件導向(class)
一 class 定義純 lua 類 基類 定義乙個名為 shape 的基礎類 local shape class shape 這是乙個純lua類 ctor 是類的建構函式,在呼叫shape.new 建立shape物件例項時自動呼叫 function shape ctor shapename self...
物件導向程式設計(class) 2
繼承是物件的特性之一 子類會覆蓋父類的相同方法,如何使用父類相同的方法 classp def init self,name self.name name class c p def init self,name,age self.age age 呼叫父類相同的方法 super init name 單...
ABAP的物件導向 class的定義
size medium 類的定義與類的實現是分開的 class myclass definition.定義了3個public的方法,分別是 set increment get 其中 set 各包含乙個i型別的輸入引數,get 返回乙個i型別的值.public section.methods set ...