gpt4 book ai didi

iphone - .gdbinit 中的变量别名?

转载 作者:行者123 更新时间:2023-12-03 21:18:48 40 4
gpt4 key购买 nike

这可能吗?

为了举一个具体的例子,请考虑以下宏:

define pos
po ([self $arg0])
end

所以现在如果我输入 pos 文本,它就会变成 po [self text]。但如果有多个参数,它就会失败,例如pos textLabel 文本变成 po [self textLabel] 而不是所需的 po [[self textLabel]text]。

再举个例子,就像这三个命令

po someIvar_
po [self someMethod]
po [[self someMethod]someOtherMethod]

打印出所引用的三个对象的描述,最好定义一个对整数执行相同操作的宏 pi,即

pi [self someMethod] 

与调用相同

print (int)[self someMethod], 

同样对于

pi [[self someMethod]someOtherMethod].

最佳答案

用户定义的命令在执行前只比字符串替换多一点。您的示例 pos textLabel text 将两个参数传递给仅考虑一个参数的命令。第二个被扔掉了。在执行之前,它应该产生 po [self textLabel] 。您所做的与以下 java-sum-function 类似:
int sum(int[] args){return args.get(0);}

你需要的是……mentioned here :

define pos
if $argc == 1
po [self $arg0]
end
if $argc == 2
po [[self $arg0] $arg1]
end
..... (as many you need)
end

我还没有发现任何类型的循环。因此,这应该是执行此操作的唯一方法,除非可以从 args 中弹出 arg0 并且允许用户定义命令的递归调用。但我认为完成上面的例子更容易。

pi 应该以相同的方式实现

define pi
if $argc == 1
print (int)[self $arg0]
end
if $argc == 2
print (int)[[self $arg0] $arg1]
end
....
end

也许有更好的解决方案,但这会让您朝着目的地更进一步。

关于iphone - .gdbinit 中的变量别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6961184/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com