知识点:id 和NSObject *对比,以及id <NS

2018-11-06  本文已影响17人  雅之上善若水
image

在obj.h的类文件中,可以看出id类型和NSObject类型的信息。如下:

类 id

/// An opaque type(隐含类型) that represents an Objective-C class.
typedef struct objc_class *Class;
/// Represents an instance of a class.
struct objc_object {
    Class _Nonnull isa ;
};
/// A pointer to an instance of a class.
typedef struct objc_object *id;

类 NSObject

@interface NSObject <NSObject> {
    Class isa ;
}

协议 NSObject

@protocol NSObject
@end

类 NSProxy

@interface NSProxy <NSObject> {
    Class   isa;
}
  1. id和NSObject对比
  1. id <NSObject> 是什么呢?
    这里的NSObject是协议NSObject(protocol)而非类NSObject。所以这里表示是遵守协议NSObject的所以类。另外NSObject类和NSProxy类都是实现了协议NSObject。

不错的推荐:

上一篇下一篇

猜你喜欢

热点阅读