小编Nic*_*and的帖子

xcode-build 无法从可用目的地列表中找到真正的 tvOS 设备

我正在尝试构建 Appium 提供的 WebDriverAgent,以便在我的 tvOS 设备上进行测试。我注意到该命令失败了,所以我尝试运行自己看看出了什么问题。我收到一个非常不寻常的错误,其中显示“没有可用设备与请求匹配”,但随后它继续在可用设备列表中列出确切的设备目的地。这里发生了什么?这是 xcode-build 的错误吗?请参阅下面的输出。Xcode 13.4.1 内部版本 13F100。appium-webdriver-agent 版本 1.3.5

2022-06-15 12:24:22.291 xcodebuild[46151:3561580] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
2022-06-15 12:24:22.291 xcodebuild[46151:3561580] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
Command line invocation:
    /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild build-for-testing test-without-building -project /Applications/Appium.app/Contents/Resources/app/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner_tvOS -destination "id=1dafa12122994bd53425e32165086f586c91c7ba,platform=tvOS,name=Living Room" GCC_TREAT_WARNINGS_AS_ERRORS=0 COMPILER_INDEX_STORE_ENABLE=NO

User defaults from command line:
    IDEPackageSupportUseBuiltinSCM = YES

Build settings from command line:
    COMPILER_INDEX_STORE_ENABLE …
Run Code Online (Sandbox Code Playgroud)

xcodebuild appium tvos

6
推荐指数
0
解决办法
273
查看次数

从shared_ptr获取原始指针,以将其传递给需要原始指针的函数

好吧,首先我对C ++还是很陌生,所以如果我的理解很差,我深表歉意。我会尽力解释自己。我所拥有的是我正在使用一个返回a的库函数,std::shared_ptr<SomeObject>然后我有一个采用原始指针参数的库函数(更具体地说是node-addon-api Napi::External<T>::New(Napi::Env env, T *data)静态函数)。我想Napi::External使用我的std :: shared_ptr 创建一个对象。我目前正在做的是这样的:

{
    // ...
    std::shared_ptr<SomeObject> pSomeObject = something.CreateSomeObject();
    auto ext = Napi::External<SomeObject>::New(info.Env(), pSomeObject.get());
    auto instance = MyNapiObjectWrapper::Create({ ext });
    return instance;
}
Run Code Online (Sandbox Code Playgroud)

但是我担心这会遇到内存问题。我的pSomeObject仅存在于当前作用域中,因此我想应该在返回之后发生,它的引用计数将降为0,并且它指向的SomeObject实例将被销毁,因此我返回的实例将出现问题使用此对象。但是我已经能够从我的实例运行此代码并在SomeObject上调用函数,所以我在想我的理解可能是错误的。

我的问题是当给定共享指针时该怎么办,但由于其他第三方库要求,我需要处理原始指针?向我提出的一个选择是对对象进行深层复制并创建一个指向该对象的指针。

如果我对这方面的理解是错误的,请纠正我,因为我说过我对C ++很陌生。

===========================

编辑:

因此,我从原始帖子信息中丢失了有关所有权以及该区块的确切含义。该块是用于实例的实现的实例方法Napi::ObjectWrap。此实例方法需要返回Napi::Object,供node.js中的调用者使用。我正在使用,Napi::External因为在创建I return 时需要将子类型传递Napi::Value给构造New函数Napi:Object,并且我需要在包装SomeObject中提取包装对象的外部对象,MyNapiObjectWrapper如下所示:

class MyNapiObjectWrapper
{
private:
    SomeObject* someObject;
    static Napi::FunctionReference constructor; // ignore for now
public:
    static void Init(Napi::Env env) {...}
    MyNapiObjectWrapper(const …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management smart-pointers shared-ptr node-addon-api

5
推荐指数
1
解决办法
88
查看次数

Ruby 为版本字符串提供默认数组值的优雅方式

这是一个微不足道的问题,不确定我是否真的应该在这里问,但想看看是否有人有更优雅的方式用 ruby​​ 编写这个问题。

x.y.z我有一个格式为orx.y或的版本字符串x。我想要一种简单优雅的方法将其转换为数组,如果缺少段,则插入默认 0 值。我有几种不同的方法来做到这一点,但我希望有一些更干净的方法。Atm 我目前的解决方案是这样的

version_string.split('.').each_with_index.with_object(['0','0','0']) { |(segment, i), version_array| version_array[i] = segment }
Run Code Online (Sandbox Code Playgroud)

似乎工作正常,我总是可以转向一个简单的方法调用,使代码看起来很干净,但是有关使用each_with_index和 `with_object 的一些事情让我有点烦恼。只是想看看 Ruby 社区的其他人是否有什么要补充的

ruby arrays default-value

2
推荐指数
1
解决办法
161
查看次数