小编Boo*_*unz的帖子

使用 sudo gem install cocoapods 安装“CocoaPods”时出现 Activesupport 错误

错误:

安装 cocoapods 时出错:支持 Ruby 和 RubyGems 的最新版本的 activesupport(>= 5.0,< 8)是 6.1.7.3。尝试安装它gem install activesupport -v 6.1.7.3,然后再次运行当前命令 activesupport 需要 Ruby 版本 >= 2.7.0。当前的 ruby​​ 版本是 2.6.8.205。

sudo gem install cocoapods

rubygems cocoapods flutter

24
推荐指数
3
解决办法
2万
查看次数

“你的 flutter checkout 有本地更改,升级后这些更改会被删除。” 运行 flutter 升级时

我最近决定运行 flutter Upgrade,但是启动后,命令终端显示:

您的 flutter checkout 具有本地更改,这些更改将通过升级删除。如果您想保留这些更改,建议您通过“git stash”存储它们,或者将更改提交到本地分支。如果可以删除本地更改,则使用“--force”重新运行此命令。

我不知道“局部变化”是什么意思。我对 git 不太熟悉,通常不需要明确地搞乱它。我担心如果使用“--force”,我会把事情搞砸。

有什么方法可以让我首先检查这些更改是什么?这可能是我忘记的一些本地配置更改。

git flutter flutter-upgrade

20
推荐指数
2
解决办法
2万
查看次数

Swiftui - 如何使用环境对象作为参数初始化观察对象?

我不确定这是否是我们生活在这个勇敢的新 SwiftUI 世界中的反模式,但基本上我有一个 @EnvironmentObject,其中保存了一些基本的用户信息,我的视图可以调用。

我还有一个@ObservedObject,它拥有此视图所需的一些数据。

当视图出现时,我想使用@EnvironmentObject 来初始化@ObservedObject:

struct MyCoolView: View { 

    @EnvironmentObject userData: UserData
    @ObservedObject var viewObject: ViewObject = ViewObject(id: self.userData.UID)  

    var body: some View { 
            Text("\(self.viewObject.myCoolProperty)")
    } 
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,在初始化之前,我无法在环境变量上调用 self :

“不能在属性初始值设定项中使用实例成员‘userData’;属性初始值设定项在‘self’可用之前运行。”

我可以看到一些可能的前进路线,但它们都感觉像是黑客。我应该如何处理这个问题?

ios swift swiftui xcode11

15
推荐指数
1
解决办法
7958
查看次数

将源添加到混音器时出现“抛出 -10878”

AudioKit,macOS:

当我执行 Mixer.addInput(myAudioPlayer) 时,程序输出以下消息:

2021-09-16 11:41:44.578038+0200 ShowTime[16140:1611137] 投掷-10878

...无数次。

你知道-10878是什么以及如何修复它吗?

我也有兴趣了解“ShowTime[16140:1611137]”的含义。我可以使用这些数字来跟踪我的程序失败的位置吗?

谢谢。

macos ios avaudioengine audiokit

13
推荐指数
1
解决办法
986
查看次数

Dart 中的 Future&lt;void&gt; 异步与简单的 void 异步

在达特中,

说 和 说 有什么区别

Future<void> doStuff() async { ...
Run Code Online (Sandbox Code Playgroud)

void doStuff() async { ...
Run Code Online (Sandbox Code Playgroud)

我知道 Future<T> 是什么以及 async/await 一般如何工作,但我从未意识到 Future<void> 是一件事。我有一些代码到处都有 Future<void> ,我想用我正常的做事方式替换它,但我不想破坏任何东西。

请注意,这两个函数都使用异步。问题不是“异步函数和非异步函数之间有什么区别?” 或者“您能简短地尝试解释一下 Dart 中的异步编程吗?”

我知道已经有一个几乎相同的问题,但如果你仔细观察答案,你会发现没有人真正以清晰的方式回答这个问题 - 有什么区别?有什么区别吗?有没有区别?

为了详细说明,请考虑以下两个函数:

// notice there is no warning about not returning anything
Future<void> futureVoid() async {
    await Future.delayed(Duration(seconds: 2), () {
      var time = DateTime.now().toString();
      print('$time : delay elapsed');
    });
}

void nonFutureVoid() async {
    await Future.delayed(Duration(seconds: 2), () {
      var time = DateTime.now().toString();
      print('$time : delay elapsed');
    }); …
Run Code Online (Sandbox Code Playgroud)

asynchronous future dart flutter

9
推荐指数
1
解决办法
3315
查看次数

Windows版docker是否可以通过GPU?

我正在尝试在Windows 10中的Docker容器中运行应用程序。

但是我无法使GPU在docker内部工作。

我读到它需要“ GPU直通”。

我应该如何解决?

virtualization hyper-v docker windows-10

8
推荐指数
3
解决办法
6344
查看次数

"延迟触及"属性似乎在IOS <11上被忽略

我在以这种方式创建的测试项目中有UITableView:

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    @IBOutlet weak var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        tableView.delegate = self
        tableView.dataSource = self

    }

    // height?
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        //return cellHeightWithoutSeparator + cellSeparatorHeight
        //print("YES!")
        return 80 // arbitrary
    }

    // table wants a UITableViewCell for each row
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = …
Run Code Online (Sandbox Code Playgroud)

xcode cocoa-touch uitableview uiscrollview swift

8
推荐指数
0
解决办法
158
查看次数

移动Flutter项目的根文件夹

在 Mac 上使用 Android Studio 中的 Flutter 进行工作时(Arctic Fox 2021.3.1 Patch 4 和 XCode 13.1 和/或 13.2):

如果您使用 Finder 移动 Flutter 项目的根文件夹,然后在 Android Studio 中打开它并运行它,原始文件夹位置仍然会被重写(通常但不总是多个内容为空的子文件夹)。

此外,移动的项目将不再从 XCode 内构建。

这意味着,如果您在创建项目时不知道项目的最终所需位置,则将无法移动它而不发生奇怪的事情。

如何移动使用 Android Studio 创建的 Flutter 项目而不产生奇怪的副作用?

有关如何重现的更多信息:

  1. 关闭所有 IDE

  2. 打开Android Studio

  3. 使用 Android Studio,使用 Java 作为 Android 代码选择创建一个新的默认 FLUTTER 项目

  4. 使用 Android Studio,在 Android 模拟器上运行此项目

  5. 使用Android Studio,在IOS模拟器上运行该项目

  6. 使用Android Studio,在XCode中打开项目(右键单击ios文件夹并选择Flutter\Open project in Xcode)

  7. 使用XCode,在IOS模拟器上运行项目

[到目前为止一切都应该有效]

  1. 关闭所有 IDE

  2. 使用 Finder,将项目文件夹移动到与其当前文件夹深度相同但父文件夹不同的新位置。意思是如果当前位置是:[root]/x/y/a/my_project_original,则目的地将是:[root]/x/y/b/my_project_copy

  3. 删除原始文件夹并记住它在哪里

  4. 使用 Android Studio,从新位置打开项目

  5. 使用Android Studio,在XCode中打开项目(右键单击ios文件夹并选择Flutter\Open project in Xcode)

  6. 尝试在IOS模拟器上运行

[观察错误 - “命令 …

android-studio flutter

8
推荐指数
1
解决办法
3985
查看次数

仅使用 Java.IO 从文件读取/写入字节

在 Java 中,我们如何将字节数组写入文件(并从该文件中读回)?

是的,我们都知道已经有很多这样的问题,但由于完成这项任务的方法有很多,所以它们变得非常混乱和主观。

因此,让我们缩小问题的范围:

领域:

  • 安卓/Java

我们想要什么:

  • 快(尽可能)
  • 无错误(以严格细致的方式)

我们没有做什么:

  • 第三方库
  • 任何需要 Android API 23 以上的库 (Marshmallow)

(因此,这排除了Apache CommonsGoogle GuavaJava.nio,并给我们留下了很好的 ol' Java.io

我们需要的:

  • 经过先写后读的过程后,字节数组始终完全相同(内容和大小)
  • Write方法只需要两个参数:File文件和byte[]数据
  • Read方法返回一个byte[]并且只需要一个参数:File file

在我的特定情况下,这些方法是私有的(不是库),并且不负责以下内容,(但如果您想创建适用于更广泛受众的更通用的解决方案,那就去做吧):

  • 线程安全(文件不会同时被多个进程访问)
  • 文件为空
  • 文件指向不存在的位置
  • 文件位置缺乏权限
  • 字节数组太大
  • 字节数组为空
  • 处理任何“索引”、“长度”或“附加”参数/功能

所以......我们正在寻找最终的防弹代码,未来的人们可以认为可以安全使用,因为你的答案有很多赞成票,并且没有评论说,“这可能会崩溃如果...”

这是我到目前为止所拥有的:

将字节写入文件:

private void writeBytesToFile(final File file, final byte[] data) {
        try {
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(data);
            fos.close();
        } catch (Exception e) {
            Log.i("XXX", "BUG: " + e);
        }
    }
Run Code Online (Sandbox Code Playgroud)

从文件中读取字节: …

java arrays android file java-io

7
推荐指数
1
解决办法
1842
查看次数

Flutter中FlutterError.onError和PlatformDispatcher.instance.onError的区别

假设在 Flutter 应用程序中,我们希望在顶层捕获任何未捕获的异常/错误,因此我们按照文档执行此操作:

main() {
  
  // All uncaught errors thrown from synchronous code blocks will end up here:
  FlutterError.onError = (FlutterErrorDetails details) {
    MyLogger.instance.logUncaughtErrorSync(details);
  };

  // All uncaught errors thrown from async code blocks will end up here:
  PlatformDispatcher.instance.onError = (Object error, StackTrace stack) {
    MyLogger.instance.logUncaughtErrorASync(error, stack);
    return true;
  };
  
  runApp(const MyApp());
Run Code Online (Sandbox Code Playgroud)

虽然文档似乎暗示两者之间的区别在于错误是否源自 Dart(特别是“Flutter”)代码与平台(Android/IOS)代码,但通过我的测试,我可以看出两者之间的唯一区别是对象(错误)是否是从异步或同步 Dart 代码中抛出的。

例如,如果在Dart代码(不是平台代码)中,我们只需输入:

_function() async {
    throw('error');
}
Run Code Online (Sandbox Code Playgroud)

我们称之为该函数,它将通过“平台调度程序”冒泡并被视为“平台错误”,但似乎只是因为它发生在后台线程上?

实际上似乎没有任何机制允许从 Java 或 Swift 代码抛出异常来触发这些 onError 函数。

但肯定不止于此,那么拥有两种独立的机制(具有不同的输入——FlutterErrorDetails 与 Object+StackTrace)有什么意义……真正的区别是什么?

error-handling dart dart-async flutter flutter-platform-channel

7
推荐指数
1
解决办法
2145
查看次数