在没有分配的情况下使用 class

Using class without alloc

我试图理解 JitsiMeet iOS 代码,我注意到他们已经初始化 class 而没有做这样的事情

[[JitsiMeetView alloc] setPropsInViews:[conferenceOptions asProps]]

相反,他们做到了

return [JitsiMeetView setPropsInViews:[conferenceOptions asProps]];

代码:https://github.com/jitsi/jitsi-meet/blob/master/ios/sdk/src/JitsiMeet.m#L117

JitsiMeetView 导入为

#import "JitsiMeetView+Private.h"

这是Jetsi Meet的界面在哪里 #import "JitsiMeetView.h"

@interface JitsiMeetView ()

+ (instancetype _Nullable)viewForExternalAPIScope:(NSString *_Nonnull)externalAPIScope;
+ (BOOL)setPropsInViews:(NSDictionary *_Nonnull)newProps;

@end

Link: https://github.com/jitsi/jitsi-meet/blob/master/ios/sdk/src/JitsiMeetView%2BPrivate.h

还有,我看不到JitsiMeetView+Private.m。有人可以解释一下上述逻辑是如何工作的吗?对于 Jitsi?

他们还没有“初始化class”。如 + 所示,这是一个 class 方法。它是在 class 上调用的,而不是在 class.

的实例上调用的

+表示是class方法,对class本身进行操作。

同时

-表示是实例方法,操作对象


例如,

@interface MyClass ()

-(void)function1;

+(void)function2;

@end

function1 是一个实例方法。要调用函数 1,请使用此代码:

[[[MyClass alloc] init] function1];

function2 是一个 class 方法。要调用函数 2,请使用此代码:

[MyClass function2];