提交 d06e9e84 编写于 作者: J James D. Lin 提交者: Chinmay Garde

Deprecate -[FlutterDartProject initFromDefaultSourceForConfiguration] (#18886) (#5858)

* Deprecate -[FlutterDartProject initFromDefaultSourceForConfiguration] (#18886)

`-[FlutterDartProject initFromDefaultSourceForConfiguration]` no
longer seems very useful.  It calls `-initWithPrecompiledDartBundle:`
or `-initWithFlutterAssets:dartMain:packages:`, but since it now
passes `nil` for all arguments, both paths end up doing the same
thing.

Additionally, `-initFromDefaultSourceForConfiguration` is awkward to
use in Swift.  The automatically generated Swift interface is:

    public convenience init!(fromDefaultSourceForConfiguration: ())

and it's not obvious how to call that.

Let's deprecate `-initFromDefaultSourceForConfiguration` and instead
expect callers to use the existing `-init` method. (We can make
`-init` do different things for different build configurations later
if necessary.)

Bonus: Rename some parameters to make it more obvious when they may
be `nil`.
上级 3e6b6817
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
/** /**
BREAKING CHANGES: BREAKING CHANGES:
July 26, 2018: Marked -[FlutterDartProject
initFromDefaultSourceForConfiguration] deprecated.
February 28, 2018: Removed "initWithFLXArchive" and February 28, 2018: Removed "initWithFLXArchive" and
"initWithFLXArchiveWithScriptSnapshot". "initWithFLXArchiveWithScriptSnapshot".
......
...@@ -21,7 +21,7 @@ FLUTTER_EXPORT ...@@ -21,7 +21,7 @@ FLUTTER_EXPORT
- (instancetype)initWithFlutterAssetsWithScriptSnapshot:(NSURL*)flutterAssetsURL - (instancetype)initWithFlutterAssetsWithScriptSnapshot:(NSURL*)flutterAssetsURL
NS_DESIGNATED_INITIALIZER; NS_DESIGNATED_INITIALIZER;
- (instancetype)initFromDefaultSourceForConfiguration; - (instancetype)initFromDefaultSourceForConfiguration FLUTTER_DEPRECATED("Use -init instead.");
/** /**
Returns the file name for the given asset. Returns the file name for the given asset.
......
...@@ -15,9 +15,10 @@ ...@@ -15,9 +15,10 @@
#include "FlutterTexture.h" #include "FlutterTexture.h"
FLUTTER_EXPORT FLUTTER_EXPORT
@interface FlutterViewController : UIViewController<FlutterBinaryMessenger, FlutterTextureRegistry, FlutterPluginRegistry> @interface FlutterViewController
: UIViewController <FlutterBinaryMessenger, FlutterTextureRegistry, FlutterPluginRegistry>
- (instancetype)initWithProject:(FlutterDartProject*)project - (instancetype)initWithProject:(FlutterDartProject*)projectOrNil
nibName:(NSString*)nibNameOrNil nibName:(NSString*)nibNameOrNil
bundle:(NSBundle*)nibBundleOrNil NS_DESIGNATED_INITIALIZER; bundle:(NSBundle*)nibBundleOrNil NS_DESIGNATED_INITIALIZER;
......
...@@ -158,11 +158,12 @@ static blink::Settings DefaultSettingsForProcess() { ...@@ -158,11 +158,12 @@ static blink::Settings DefaultSettingsForProcess() {
if (self) { if (self) {
_settings = DefaultSettingsForProcess(); _settings = DefaultSettingsForProcess();
if ([[NSFileManager defaultManager] fileExistsAtPath:dartMainURL.path]) { if (dartMainURL != nil && [[NSFileManager defaultManager] fileExistsAtPath:dartMainURL.path]) {
_settings.main_dart_file_path = dartMainURL.path.UTF8String; _settings.main_dart_file_path = dartMainURL.path.UTF8String;
} }
if ([[NSFileManager defaultManager] fileExistsAtPath:dartPackages.path]) { if (dartPackages.path != nil &&
[[NSFileManager defaultManager] fileExistsAtPath:dartPackages.path]) {
_settings.packages_file_path = dartPackages.path.UTF8String; _settings.packages_file_path = dartPackages.path.UTF8String;
} }
} }
...@@ -176,7 +177,8 @@ static blink::Settings DefaultSettingsForProcess() { ...@@ -176,7 +177,8 @@ static blink::Settings DefaultSettingsForProcess() {
if (self) { if (self) {
_settings = DefaultSettingsForProcess(); _settings = DefaultSettingsForProcess();
if ([[NSFileManager defaultManager] fileExistsAtPath:flutterAssetsURL.path]) { if (flutterAssetsURL != nil &&
[[NSFileManager defaultManager] fileExistsAtPath:flutterAssetsURL.path]) {
_settings.assets_path = flutterAssetsURL.path.UTF8String; _settings.assets_path = flutterAssetsURL.path.UTF8String;
NSURL* scriptSnapshotPath = NSURL* scriptSnapshotPath =
...@@ -192,12 +194,9 @@ static blink::Settings DefaultSettingsForProcess() { ...@@ -192,12 +194,9 @@ static blink::Settings DefaultSettingsForProcess() {
#pragma mark - Convenience initializers #pragma mark - Convenience initializers
// Exists for backward-compatibility. Expect this to be removed.
- (instancetype)initFromDefaultSourceForConfiguration { - (instancetype)initFromDefaultSourceForConfiguration {
if (blink::DartVM::IsRunningPrecompiledCode()) { return [self init];
return [self initWithPrecompiledDartBundle:nil];
} else {
return [self initWithFlutterAssets:nil dartMain:nil packages:nil];
}
} }
- (const blink::Settings&)settings { - (const blink::Settings&)settings {
......
...@@ -93,8 +93,7 @@ static std::string CreateShellLabel() { ...@@ -93,8 +93,7 @@ static std::string CreateShellLabel() {
return; return;
} }
FlutterDartProject* project = FlutterDartProject* project = [[[FlutterDartProject alloc] init] autorelease];
[[[FlutterDartProject alloc] initFromDefaultSourceForConfiguration] autorelease];
auto config = project.runConfiguration; auto config = project.runConfiguration;
config.SetEntrypointAndLibrary(entrypoint.UTF8String, uri.UTF8String); config.SetEntrypointAndLibrary(entrypoint.UTF8String, uri.UTF8String);
......
...@@ -60,16 +60,16 @@ ...@@ -60,16 +60,16 @@
#pragma mark - Manage and override all designated initializers #pragma mark - Manage and override all designated initializers
- (instancetype)initWithProject:(FlutterDartProject*)project - (instancetype)initWithProject:(FlutterDartProject*)projectOrNil
nibName:(NSString*)nibNameOrNil nibName:(NSString*)nibNameOrNil
bundle:(NSBundle*)nibBundleOrNil { bundle:(NSBundle*)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) { if (self) {
if (project == nil) if (projectOrNil == nil)
_dartProject.reset([[FlutterDartProject alloc] initFromDefaultSourceForConfiguration]); _dartProject.reset([[FlutterDartProject alloc] init]);
else else
_dartProject.reset([project retain]); _dartProject.reset([projectOrNil retain]);
[self performCommonViewControllerInitialization]; [self performCommonViewControllerInitialization];
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册