标签: target

创建新目标时,该类与键的键值编码不兼容

我有一个用 Swift 完成的 iOS 大型基础项目。现在我尝试通过创建新目标来创建不同的客户端版本:

  • BaseProject(工作得很好,除非我更改它的名称)
  • Client1(启动屏幕后出现 NSUnknownKeyException)。

基础项目运行得很好。但是当我切换到新目标时,我收到以下 NSUnknownKeyException:

Terminating app due to uncaught exception 'NSUnknownKeyException', 
reason: '[<UIViewController 0x135e57c40> setValue:forUndefinedKey:]: 
this class is not key value coding-compliant for the key textConfirmPassword.'
Run Code Online (Sandbox Code Playgroud)

“textConfirmPassword”是我的 main.storyboard 中文本字段的引用。

  • 我检查了引用网点,这似乎不是问题。
  • 我检查了文本字段的目标成员资格。
  • 我重新创建了插座参考。
  • 我删除了引用,创建了一个硬编码文本字段,该文本字段不会出现在情节提要上,以便代码可以编译。异常发生在不同的文本字段(textEmail)。

在完成这一切之前,我使用图像和引用的标签创建了一个示例项目。版本控制工作得很好。

xcode target ios nsunknownkeyexception

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

反应 ref.example.value 与 e.target.value

我有下面的组件可以正常工作,但是如果我只是代替this.refs.searchString.value它会工作吗?event.target.value如果是这样,哪一种是首选方法?各自的优点和缺点是什么?

const SearchBar = React.createClass({

  handleSubmit (event) {
    event.preventDefault()
    const formattedSearchString = this.refs.searchString.value.replace(/[^a-z]/gi, "").toLowerCase()
    this.refs.searchString.value = ''
    this.props.submitSearch(formattedSearchString)
  },
  render() {
    return (
      <form className="form form-group has-info col-md-4 text-align-center" onSubmit={this.handleSubmit}>
        <input className="search-input form-control" type="text" ref="searchString"  placeholder=" . . . enter pokemon name" />
        <button className="btn btn-info btn-raised" type="submit" name="button">Search!</button>
      </form>
    )
  }
})
Run Code Online (Sandbox Code Playgroud)

javascript events ref target reactjs

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

如何将多个内部 swift 模块(框架)打包到单个第 3 方框架中?

在我们的 Xcode 项目中,我们已经开始实现 ios 模块,将我们庞大的代码库划分为独立的部分。

我们有以下模块:

Common
Product1
Product2
Product
App
Run Code Online (Sandbox Code Playgroud)

其中App使用Product1、Product2和Common,并且Product1使用Common,但Common对更高级别的项目一无所知。

在 XCode/Swift 中,它们作为单独的目标实现,并生成导入到更高级别目标中的框架。它非常适合该应用程序。最终产品应用程序编译时无需关心它来自通过依赖框架的多个目标。

我们还有一个为第三方部署的实际框架。之前,我们选择了框架中存在的所有文件,并使它们成为框架目标和应用程序目标的双重成员。

然而现在我们有了这种依赖关系,其中较低级别的模块作为“目标依赖关系”包含在 xcode 中。

ProductFramework3rdParty
Product1
Common
Run Code Online (Sandbox Code Playgroud)

ProductFramework 在模拟器中编译良好,它可以嵌入到准系统示例应用程序中并作为嵌入式二进制文件运行。这就是目标。

然而,在设备上,它给出了在运行时找不到通用框架的错误。

dyld: Library not loaded: @rpath/Common.framework/Common
Referenced from: 
/private/var/mobile/Containers/Bundle/**/**/ProductFramework3rdParty/ProductFramework3rdParty
Reason: image not found
Run Code Online (Sandbox Code Playgroud)

仅当我将 Common 模块以及最终的 Product1 模块也嵌入到 3rd 方应用程序中时,它才有效。这并不是真正的预期目标,必须向客户提供我们的官方框架以及内部模块。我们的代码中最终可能有 5-10 个模块,并且希望将其全部打包到单个分布式框架中。

我们应该怎么做?

我尝试将 Common 的 Mach-O 从动态更改为静态,但没有成功,它创建了一长串我无法克服的链接错误。以及将 Common 扩大到 100mb,比以前大得多。

frameworks module target ios swift

5
推荐指数
0
解决办法
671
查看次数

如何将编译选项从目标传播到 Cmake 上的所有其他目标

我正在 ARM 项目上实现现代 Cmake。我有 3 个不同的 CMakeList:

  • 顶部 CMakeLists:包含要编译的应用程序文件 (main.c) + 2 个目标依赖项(算法和硬件)
target_link_libraries(app_target PUBLIC algo_target hardware_target)
Run Code Online (Sandbox Code Playgroud)
  • algo CMakeLists 只有 C 文件,仅执行计算 (algo.c)
  • hardware CMakeLists 编译有关硬件依赖项的所有文件 (hardware.c) 并根据硬件专门编译选项 -mcpu -mthumb -mfloat-abi -mfpu
target_compile_options(hardware_target -mcpu=${CPU} -mthumb -mfloat-abi=hard -mfpu=${FPU})
Run Code Online (Sandbox Code Playgroud)

问题是,编译选项传播到顶部,但不在 algo_target 上。我有以下错误:

app 使用 VFP 寄存器参数,algo.a(algo.cpp.obj) 不使用

如何在所有目标上传播编译选项?我不想在编译选项变量中设置编译选项,将来,应用程序将在 2 个不同的硬件目标上运行

c gcc cross-platform cmake target

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

如何避免覆盖目标或抑制警告

我想创建一个 makefile 来包含在其他文件中,有点像“库”,我们称之为library.mak:

TARGET_FILES = a.txt b.txt c.txt d.txt
SRC_FOLDER = somewhere/else
.PHONY: all
all:
    for target in ${TARGET_FILES} ; do \
        echo -e "\nMaking $${target}:" ;\
        ${MAKE} ${MFLAGS} --no-print-directory $${target} ;\
    done

.PHONY: ${TARGET_FILES}
${TARGET_FILES}:
    cp  ${SRC_FOLDER}/$@  $@
Run Code Online (Sandbox Code Playgroud)

这两条规则分别是为了制定全部目标,以及一个特定目标;使用默认规则(这是library.mak的目的)。

在名为 Makefile 的“用户 makefile”中,我想执行以下操作:

include library.mak

# special handling of c.txt
c.txt:
    grep -v 'all except this' ${SRC_FOLDER}/$@ > $@
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,用户希望能够覆盖某些特殊情况的行为。warning: overriding recipe for target虽然这种方法有效,但它总是用令人恐惧的消息向用户打招呼warning: ignoring old commands for target,即使行为符合预期。

所以问题是:是否可以通过不同的方式来避免这些警告,或者是否有办法抑制它们?

overriding makefile gnu-make target

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

目标::tar_map() 示例?(R 的目标是静态分支)

有谁有如何使用目标包(R)中的静态分支的示例吗?我正在阅读有关静态分支的目标手册,但我很难理解它(即使我确实获得了动态分支)。

https://books.ropensci.org/targets/static.html

r target targets-r-package

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

4
推荐指数
1
解决办法
3万
查看次数

通过Applescript将文件添加到Xcode项目目标

我想自动将文件添加到从头创建的Xcode项目(通过另一个IDE)作为构建后步骤.我们的项目设置为调用在项目中生成相应文件引用的applescript,但是每次尝试将文件引用添加到项目都会失败.

核心问题似乎是这个错误:Xcode出错:工作区文档"project.xcworkspace"的项目"TestProject"的Xcode 3组ID"D82DCFB50E8000A5005D6AD8"的文件引用ID"DCDCC17E13819A8E004B4E75"不理解添加消息.

在这条线上:

add fileRef to first target of testProject
Run Code Online (Sandbox Code Playgroud)

其中fileRef是设置为新创建的文件引用的变量,testProject是设置为包含fileRef的项目的变量.

这是代码:

on run argv

-- Get the folder containing items to be added to the project
tell application "Finder"
    set thisScript to path to me
    set projectFolder to get folder of thisScript as string
    set sourceFolder to projectFolder & "FilesToAdd:"
end tell

-- Get all the files that will be added to Xcode
tell application "System Events"
    set filesToAddList to the name of every disk item of (sourceFolder …
Run Code Online (Sandbox Code Playgroud)

xcode applescript file add target

4
推荐指数
1
解决办法
3537
查看次数

你如何根据目标变量(Makefile)有条件地调用目标?

我想运行基于是否不同版本的清理目标的make dev或者make prod是在一个makefile运行.

我本身并没有编译任何东西,只是想根据变量有条件地调用特定目标或一组目标,例如:

ifeq ($(BUILD_ENV),"development")
clean: -clean
else
clean: -clean-info
endif

#---------------------------------
dev: BUILD_ENV = development
dev: dev-setup which-env

#---------------------------------
prod: BUILD_ENV = production
prod: prod-setup which-env

#---------------------------------


which-env: clean
    @echo -e "$(GREEN)$(BUILD_ENV)!$(CLEAR)"

-clean: -clean-info -clean-logs | silent
    @echo -e "$(GREEN)</CLEAN>$(CLEAR)"

-clean-info:
    @echo -e "$(GREEN)<CLEAN>...$(CLEAR)"

-clean-logs:
    @echo -e " $(GREY)Removing log and status files $(CLEAR)";
    @if [ -d .stat ]; then rm -rf .stat; fi
    @rm -f *.log || true
Run Code Online (Sandbox Code Playgroud)

有没有办法用Makefiles做到这一点?我还没有找到任何可以说明这个用例的内容.

我不是要特意清理任何东西或构建任何东西,这只是我试图有条件地调用一组目标的一个例子.实际目标可能是其他任何目标.

conditional makefile target

4
推荐指数
1
解决办法
7630
查看次数

为什么有些FAKE方法在目标函数内不起作用?

考虑以下:

#r @"FakeLib.dll"

open Fake
open Fake.StringHelper
open Fake.ProcessHelper

Shell.Exec("mkdir","exampleDirectory")

Target "DoStuff" ( fun () -> 
    trace "Doing Stuff..."
)

Target "Clean" ( fun () -> 
    trace  "Cleaning..."
)

Target "Deploy" (fun () -> 
    trace  "Deploying..."
)

"DoStuff"
    ==>"Clean"
    ==>"Deploy"

RunTargetOrDefault "Deploy"
Run Code Online (Sandbox Code Playgroud)

上面的脚本工作正常,但当我在目标中移动Shell.Exec时,如下所示:

#r @"FakeLib.dll"

open Fake
open Fake.StringHelper
open Fake.ProcessHelper

Target "DoStuff" ( fun () -> 
    trace "Doing Stuff..."
    Shell.Exec("mkdir","exampleDirectory")
)

Target "Clean" ( fun () -> 
    trace  "Cleaning..."
)

Target "Deploy" (fun () -> 
    trace  "Deploying..."
)

"DoStuff" …
Run Code Online (Sandbox Code Playgroud)

f# target f#-fake

4
推荐指数
1
解决办法
110
查看次数