Tag: objective c

如何使用Objective-C测试数字是否在范围内?

我有一个非常基本的问题。 我想知道这是否是Objective-C或C中的内置函数,以帮助我找到特定数字是否在某个范围内。 我知道这可能是一个简单的问题,但我仍然没有找到答案。 在短期内,我们希望避免在此测试中使用多个“if”和“else”。

Objective-C中的星号用法

我有一个关于在Objective-C中使用星号的问题。 需要明确的是:我理解指针是什么以及程序C中的所有内容。我想知道两件事情: 1)为什么所有(引用)Objective-C对象指针? 为什么不是普通变量? (即NSArray数组= [[NSArray alloc] init];) 2)为什么在调用方法时省略星号? 谢谢!

为什么gcc不允许将const int作为case表达式?

我正在考虑这个问题,并开始考虑const ints与#defines,并意识到我实际上并不理解为什么编译器无法解决这个问题。 有人可以解释为什么以下代码 const int FOO = 10; int main(int argc, char** argv) { switch(argc) { case FOO: { printf(“foo\n”); } default: { printf(“default\n”); } } } 结果是 error: case label does not reduce to an integer constant 我阅读了ISO-C99规范,该规范在6.8.4.2.3中说明 每个case标签的表达式应为整数常量表达式,并且同一switch语句中的两个case常量表达式在转换后不应具有相同的值。 我理解为什么case表达式必须是常量,但不是为什么只有一个文字让编译器(gcc 4.2.1)满意。

适用于Mac OS X的SetWindowsHookEx?

Windows钩子允许您在其他进程中查找,有时会改变其行为。 Mac OS X有这样的东西吗? 谢谢!

随机数function失灵

我有一个非常简单的iPhone应用程序,需要1-100的随机整数。 我有一个按钮,调用随机数function,然后显示它。 -(IBAction)buttonReleased; { srandom(time(NULL)); int theNum = random() % 100 + 1; numberDisplay.text = [NSString stringWithFormat:@”%d”, theNum]; } 问题是,如果我快速按下按钮,有时它将不会显示新的随机数。

如何用12的幂提高双倍值?

我有一个双倍的是: double mydouble = 10; 我想10 ^ 12,所以10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10.我试过了 double newDouble = pow(10, 12); 它在NSLog中返回我: pow=-1.991886 没有多大意义……我认为战俘不是我的朋友吗?

local,global,static,auto,register,extern,const,volatile变量存储在哪里?

存储了local,global,static,auto,register,extern,const,volatile变量的位置在哪里?

如何学习C和Objective-C

我正在学习编程。 我计划今年夏天学习C和Objective-C。 我买了C for Dummies书,但这完全是浪费时间。 它的页面太多了! 我应该阅读哪些好书? 或者我应该从网站上学习C? 什么是最快的方式,因为我真的想快速学习它并开始学习Objective-C。 谢谢 另外,学习C需要多长时间? 直到我转向Objective-C 2.0

为什么我必须在Objective-C中只编写* myPointerVar SOMETIMES?

这是一个我仍然不明白的问题。 有时我必须写: NSString* myVariable; myVariable = @”Hey!”; 然后,例如,我定义一个结构“DemoStruct”并获得一个使用它的变量。 假设我有一个结构,其中x和y变量来自double类型。 我想将这个var传递给一个方法然后操作我的var,我希望这个操作对我将var传递给该方法的上下文有影响。 所以我需要一个指针,对吧。 我把它传递给这样的方法: [someObject someMethod:&myVarThatUsesTheStruct] 该方法现在看起来像这样: – (void)someMethod:(DemoStruct*)myVar { (*myVar).x += 10; } 在调用之前,结构的组件x可以说是1000.现在,在方法调用之后添加10并且它是1010。 但我真的很难得到它为什么我必须在方法中使用Asterisk * for myVar,因为我已经在方法标题中说myVar是DemoStruct的指针。 我只是通过&myVarThatUsesTheStruct传递内存地址。 有人可以解释为什么会这样吗?

为什么不需要解除引用NSString指针?

在这个例子中 NSString *message = @”Hello”; message = @”World”; 如果message只是一个指针,为什么我不需要明确说出消息中的任何内容现在等于string或*message = @”World”; 喜欢在C?