Когда я использую JavaScriptCore, я не могу освободить объект oc, ​​который был введен в js - PullRequest
0 голосов
/ 16 мая 2019

Я использую JavaScriptCore, затем я создал XXProtocol протокол, который наследует JSExport, а также создал oc-класс JSModel, следующий за XXProtocol.Но когда я выполню [context setObject:jsObject forKeyedSubscript:@"ttf"];После того, как viewcontroller выпущено, но jsmodel не выпущено.

JSModel

#import <Foundation/Foundation.h>
#import <JavaScriptCore/JavaScriptCore.h>
NS_ASSUME_NONNULL_BEGIN

@protocol XXProtocol <JSExport>

- (void)nslog:(NSString *)str;

@end

@interface JSModel : NSObject <XXProtocol>


@end

NS_ASSUME_NONNULL_END

ViewController.m

Впрыск jsmodel в context

- (void)notifacationAction:(NSNotification *)notification {
    JSContext *context = notification.object;
    JSModel *jsObject = [JSModel new];
    [context setObject:jsObject forKeyedSubscript:@"ttf"];
}

viewController действительно выпущен.

- (void)dealloc {

    NSLog(@"%@  释放了",[[self class] description]);
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

jsmodel не выпущен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...