FBSimulatorControl/Commands/FBSimulatorMemoryCommands.m (37 lines of code) (raw):

/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #import <CoreSimulator/SimDevice.h> #import "FBSimulatorMemoryCommands.h" #import "FBSimulator.h" #import "FBSimulatorError.h" #import <FBControlCore/FBiOSTarget.h> @interface FBSimulatorMemoryCommands () @property (nonatomic, weak, readonly) FBSimulator *simulator; @end @implementation FBSimulatorMemoryCommands #pragma mark Initializers + (instancetype)commandsWithTarget:(FBSimulator *)targets { return [[self alloc] initWithSimulator:targets]; } - (instancetype)initWithSimulator:(FBSimulator *)simulator { self = [super init]; if (!self) { return nil; } _simulator = simulator; return self; } #pragma mark FBMemoryCommands Protocol Implementation - (FBFuture<NSNull *> *)simulateMemoryWarning { if ([self.simulator.device respondsToSelector:(@selector(simulateMemoryWarning))]) { return [FBFuture onQueue:self.simulator.workQueue resolve:^ FBFuture<NSNull *> * () { [self.simulator.device simulateMemoryWarning]; return FBFuture.empty; }]; } return [[FBSimulatorError describe:@"SimDevice doesn't have simulateMemoryWarning selector"] failFuture]; } @end