【问题标题】:In Objective C, is it possible to "connect" a variable to another one?在 Objective C 中,是否可以将一个变量“连接”到另一个变量?
【发布时间】:2012-08-03 09:13:08
【问题描述】:

我有一个“int i = 0;”,还有一个“int b;” 我希望将变量“b”设置为应用程序的任何值“i”。 所以一开始,“b”会被设置为“i”,所以“b”会是0。 但是如果“i”在应用程序中突然发生变化,我希望“b”自动设置为“i”是什么。

注意:我以整数为例,我实际上是在为 NSStrings 询问这些问题 如果您不明白问题,请发表评论!

【问题讨论】:

  • 为什么不只使用 i 来表示所有内容而从不使用变量 b?

标签: objective-c variables int


【解决方案1】:

ints 是一个 C 整数类型——它们不是 Objective-C 特有的。因此,您可以通过使 b 成为 i 的指针来实现您想要的。例如

int i = 0;
int *b;
b = &i;

NSLog(@"value is currently %d", *b);

i = 2;

NSLog(@"value is now %d", *b);

这在 C 中意味着i 是一个整数,b 是一个整数地址的容器。 &i 计算为i 的地址,所以b = &i; 表示“将 i 的地址放入 b”。 *b 表示“b 中包含的地址处事物的值”(与 b 形成对比,后者将是“b 中存储的地址”)。

i不存在时,访问*b将失效。

【讨论】:

  • NSStrings 怎么样?我实际上只是以整数为例。
  • 除了i 的类型为NSString *b 的类型为NSString ** 之外,NSStrings 是相同的。
【解决方案2】:

您想要的行为类似于全局变量。在这种情况下,每当您更改 I 的值时,您也会更改 B 的值。但也许您可以通过通知(事件)解决您的问题,但我不确定。

【讨论】:

  • 实际上,如果您不想使用全局变量,Tommy 的回答是最好的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多