Использование класса без выделения

#objective-c

Вопрос:

Я пытался понять код iOS JitsiMeet и заметил, что они инициализировали класс, не делая ничего подобного

 [[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 Встречается
#импорт "JitsiMeetView.h"

 @interface JitsiMeetView ()

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

@end
 

Ссылка: https://github.com/jitsi/jitsi-meet/blob/master/ios/sdk/src/JitsiMeetView+Private.h

Кроме того, я ничего не вижу JitsiMeetView Private.m . Может кто-нибудь, пожалуйста, объяснить мне, как работает вышеприведенная логика? для Джитси?

Комментарии:

1. Почему ты пометил этого свифта?

Ответ №1:

Они не «вошли в класс». Как указывает, это метод класса. Он вызывается в классе, а не в экземпляре класса.

Ответ №2:

указывает, что это метод класса и работает с самим классом.

Пока

- указывает, что это метод экземпляра и работает с объектами.


Например,

 @interface MyClass ()

-(void)function1;

 (void)function2;

@end
 

функция 1-это метод экземпляра. Чтобы вызвать функцию 1, используйте этот код:

 [[[MyClass alloc] init] function1];
 

функция 2-это метод класса. Чтобы вызвать функцию 2, используйте этот код:

 [MyClass function2];