Tag: objective c

为什么++运算符将整数增加4而不是1?

我在Objective-C中有一些简单的代码,包括一个按钮和一个标签。 当您单击按钮一次时,标签显示:“你打我”,如果你点击它两次,消息将是:“我再次做了”。 但是,如果按下按钮5次或更多,则消息应为:“停止”; 我使用简单的if和一个使用operator ++增加的计数器。 问题是:我的计数器以4为步长增加,而不是以1为步长。 这是代码 @implementation hitMe NSString *myString = @””; int *counter = 0; – (IBAction)htM:(id)sender { if ([myString isEqualToString:@””]){ //first hit myString = @”u hit me”; } else { // second and next hits… myString = @”u did it again!”; counter++; } // if I use “counter > 5” it doesn’t […]

什么是?:运算符

在Objective-C代码的示例中,我找到了这个运算符 self.itemViews[@(0)] ?: [self.dataSource slidingViewStack:self viewForItemAtIndex:0 reusingView:[self dequeueItemView]]; 该代码在Apple LLVM 4.2下编译。 我遇到的唯一一件事就是成为一个向量运算符,但我不认为Objective-C,就C而言,它有向量运算符。 那么有人可以提供此运营商的参考和/或文档。

如何修复错误格式指定类型’char *’但参数的类型为’char’

我收到一条警告:“Format指定类型’char *’,但参数的类型为’char’”,用于student变量。 我正在将一本书中的代码复制/粘贴到xcode中,我不知道如何解决这个问题。 在控制台中打印的唯一内容是“(lldb)”。 任何建议 #include void congratulateStudent(char student, char course, int numDays) { printf(“%s has done as much %s Programming as I could fit into %d days.\n”, student, course, numDays); } int main(int argc, const char * argv[]) { // insert code here… congratulateStudent(“mark”, “Cocoa”, 5); return 0; }

通过不同的情况切换相同操作的语句语法

两个常量(1 + 2)共享相同的case语句。 我不想加倍代码。 这样做的正确语法是什么? switch (expression) { case 0: [self taskA]; break; case 1: [self taskB]; break; case 2: [self taskB] break; default: break; }

objective-c union“ – >”vs“。”

首先让我说我对整个结构和联合事物都很陌生。 在发布这篇文章之前我已完成了我的作业,并诚实地试图获得合法的澄清。 如果这是错误的方式,请告诉我。 首先,我试图创建一个联合,因为我正在组合不同的数据类型。 我唯一真正的问题/问题是点运算符vs – >。 我可以得到我想用的工作 -> 但不是 . 我只是好奇为什么? iv阅读堆栈上的一堆post,用“。”显示示例或“答案”,但在现实世界中没有运气。 我玩过“typedef”就像… typedef union _myUnion { int intValue; bool boolValue; }myUnion; 但这并不能解决问题。 如果有人解释我做错了什么,将不胜感激。 这是我想要做的快速示例。 为了简单起见,我将发布一些struct / union语法,并且不会添加任何子类代码,因为这不是问题。 example.h文件 #import “<Foundation/Foundation.h" union myUnion { int intValue; bool boolValue; }; @interface MyClass : NSObject { union myUnion *someProperty; } @property (nonatomic, assign) union myUnion *someProperty; […]

如何使用Cocoa OSX SDK检查TCP端口

我想制作一个cocoa应用程序,它将检查服务器上是否打开了某些TCP端口。 如果它关闭则返回一个小红球,如果它打开则返回绿色…… 但我有点困惑,使用什么类,等等。 在此先感谢您的帮助

gdb / lldb调用一个函数并中断它

我有一个长期计划的全局function: int test() { int a = 12; int c = 10; printf(“a=%d”,a); a += c ; printf(“a=%d”, a); return a; } 我调试程序并中断,然后发出以下命令: (lldb) call test() a=12a=22(int) $0 = 22 (lldb) 我希望它在我call test()之后每一行都在test()方法中断,而不是立即返回结果。 谁知道怎么做? ————————————以下答案———— ———————— @Jason Molenda的答案是正确的答案,使用expr -i0 — test()而不是call test() : (lldb) b test Breakpoint 1: 4 locations. (lldb) expr -i0 — test() […]

确定函数是否是异步信号安全的(可以在信号处理程序中调用)

我的问题是: 如果您无法访问其实现,是否有办法确定函数是否是异步信号安全的? 如果没有,有没有办法测试函数是否异步信号安全足以从信号处理程序调用? 如果您读取signal()或sigaction()的手册页,您将获得一个async-signal-safe函数列表(可以在信号处理程序中安全地调用的函数)。 但是,我认为这份清单并非详尽无遗。 例如, Async-signal-safe函数头下的以下页面http://linux.die.net/man/7/signal读取: POSIX.1-2004(也称为POSIX.1-2001技术勘误2)要求实现以保证在信号处理程序内可以安全地调用以下函数: 然后它继续列出上面手册页中列出的正常异步信号安全function。 当我读它时,它说“它需要”,而不是“这些是唯一的”。 例如, 该站点说back_trace_symbols_fd()是异步信号安全的。 该函数获取的是来自dladdr()的数据,并且它不像back_trace_symbols()那样使用malloc(),所以看起来它可能是安全的。 此外,我做了一些测试,并且dladdr()的输出结构包含char *变量,但这些变量在运行时不是malloc。 他们指向的char字符串甚至在调用dladdr()之前就存在于运行时。 任何可以指向正确方向的想法或想法都会受到赞赏。

使用参数调用obj-c方法

我已经将c风格的函数更改为objective-c方法。 作为一种方法,我该如何使用它? NSString* myfunc( int x ) is now: – (NSString *)myFuncWithParam:(int)x c code: myString = myfunc(x); // works obj-c code: myString = myFuncWithParam(x); // fails to compile. 从其中一个答案:myString = [object myFuncWithParam:x]; 在那种情况下,什么会“反对”?

如何通过编程方式将照片转换为Polaroid-like?

如何将现代照片转换为宝丽来照片的外观和感觉? 欢迎提供参考和/或示例代码。 谢谢!