Tag: objective c

在C中分配内存的问题

编辑2 在我的其他SO问题中找到有关此问题的更多信息。 编辑1 我已经刷新了这篇文章,因此内容可能与Alexey,Hicham,Jonathan和Mat的评论不一致。 以下代码使用此FFT来辅助起始检测。 当一次调用该方法时, 一切正常 ,我得到一个很好的值记录。 当第二次调用这个方法时,我得到了nan或者垃圾。 有任何想法吗? { NSLog(@”Running onset.”); NSMutableArray *mutableArrayOfFlags = [[NSMutableArray alloc] init]; OnsetsDS *ods = malloc(sizeof *ods); float* odsdata = (float*) malloc(onsetsds_memneeded(ODS_ODF_RCOMPLEX, 512, 11)); onsetsds_init(ods, odsdata, ODS_FFT_FFTW3_HC, ODS_ODF_RCOMPLEX, 512, 11, 44100); int i; int x; bool onset; for (i = 0; i < vocalBuffer.numFrames; i=i+512){ // convert vocal […]

在Core Foundation中保留和“自动释放”

假设我正在编写自己的函数,该函数接收CFDataRef对象,对其执行某些操作,并返回另一个CFDataRef对象: CFDataRef transformData(CFDataRef inData) { //Question 1: Should I call CFRetain(data) here to make sure it doesn’t //go away? (This of course would involve releasing data just before returning //from this function, or as soon as I no longer need data.) CFDataRef outData; //Somehow produce the new outData from inData (and assume we are the […]

在Objective-C中使用C函数(适用于iPhone)

‘好吧。 我是一个自我描述的iPhone编程招执的人(拥有更长的perl和网络背景 – 30年)……但上周冒了一大笔钱买了几本好书。 在填写并阅读了超过1000页之后 – 并且非常了解它,我正在前往一个良好的第一个原生iPhone应用程序。 我的问题是:我不知道如何在Objective-C中做一个简单的Geographic(lat / long)多边形点例程。 我有两种方法可以做到这一点。 一个在C(第一个代码示例)和一个在JavaScript(第二个代码示例): // this is the poly.h file int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy); // this is the poly.c file #include “poly.h” int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy){ int i, j, c = 0; for […]

C char *进入Objective-C NSString(或NSData?)

我正在解析C中的文件字节流,并通过回调将结果组织到Objective-C世界中的NSDictionary和NSArray中。 NSDictionary的键是NSString所有实例。 我正在使用NSNEXTSTEPStringEncoding将C字符串转换为NSString ,但现在又一些键是nil (即使C字符串有一个或多个字符)。 这样做的正确方法是什么?

在C / Objective-C中将返回值放在括号中的意图是什么?

我遇到了一些代码,它们围绕括号中方法/函数的返回值。 那是做什么的? 我看到的代码拍了一张图片,调整了大小然后又返回了。 – (UIImage *)resizeImage:(UIImage *)image { // // some fascinating, but irrelevant, resizing code here // return (image); }

如何在iPad应用程序中将FMDB用作框架?

我目前正在开发一个iPad应用程序。 在一个阶段,有一系列滑块和按钮,当您按下按钮时,它会将滑块的值存储到表格中。 首先,我需要使用SQLite来管理数据库。 我发现了一个名为FMDB的项目,它是围绕SQLite for iPhone / Mac应用程序的包装器。 我是iOS / Objective-c开发的新手,想知道如何将FMDB(或FMDB框架)添加到应用程序中。 -Tristan

有什么方法可以用预处理器替换部分字吗?

我的Objective-C类中有类似的东西 @interface PREFIX_MyClass { … @end 我想使用预处理器将其转换为: @interface AwesomeMyClass { … @end 所以像 #define PREFIX_ Awesome 不起作用,因为它是一个单词的一部分。 还有别的办法吗? 我知道我可以使用这样的东西: #define PrefixClass(NAME) Awesome##NAME @interface PrefixClass(MyClass) 但我不喜欢这样,因为它打破了代码完成并在开发工具中引用了以下内容(即:在这种情况下为Xcode)

使用NSUInteger的奇怪行为 – 无法正确转换为浮动

这是我的情况。 它让我疯狂: 我有一个NSMutableArray,其计数值为517.我有一个double值,这是我的乘数。 double multiplier = 0.1223; double result = [myArray count] * multiplier; // 63 even (wrong!) 实际上它应该是63.2291。 如果我走: double result = [myArray count] * 0.1223; // 63.2291 (right!) 要么.. double result = 517 * multiplier; // 63.2291 (right!) 这对任何人都有意义吗? 附录: 这是我的实际function: – (double) getValueForPercentage:(double)percVal { int adjustedCount = [originalData count] – 1; double […]

ARC&Malloc:EXEC_BAD_ACCESS

我一直在做一个项目已经有一段时间了,我决定跳到ARC。 我偶然发现了一些轰炸的代码,我想知道原因。 我已设法将其简化为此代码段: typedef __strong id MYID; int main(int argc, char *argv[]) { MYID *arr = (MYID *) malloc(sizeof(MYID) * 4); arr[0] = @”A”; // always get an EXEC_BAD ACCESS HERE arr[1] = @”Test”; arr[2] = @”Array”; arr[3] = @”For”; // uh oh, we need more memory MYID *tmpArray = (MYID *) realloc(arr, sizeof(MYID) * […]

如何通过引用函数传递数组?

我有一个函数,它有一个数组指针传递它来修改数组中的东西: (void)arrayFunction 🙁 Byte [])targetarray {//做东西到targetarray} 它是Byte类型的数组,但我认为我没有把正确的东西放在圆括号中。 应该是什么而不是(Byte [])? 可能有几个不同大小的数组传递给此函数 提前致谢!