Tag: iphone

使用libxml2 sax解析器时如何从xml获取属性的名称和值?

我试图通过使用libxml2来解析iPhone应用程序上的api,试图在一些通用xmls中检测属性的名称和值。 对于我的项目,解析速度非常重要,所以我决定使用libxml2本身而不是使用NSXMLParser。 现在,作为XMLPerformance的参考,它是用于NSXMLParser和libxml2之间的解析基准的iPhone SDK的示例,我试图在XML解析器处理程序中获取属性的细节,如下所示,但我不知道如何检测它。 /* for example, */ static void startElementSAX(void *ctx, const xmlChar *localname, const xmlChar *prefix, const xmlChar *URI, int nb_namespaces, const xmlChar **namespaces, int nb_attributes, int nb_defaulted, const xmlChar **attributes) { if (nb_attributes > 0) { NSMutableDictionary* attributeDict = [NSMutableDictionary dictionaryWithCapacity:(NSUInteger)[NSNumber numberWithInt:nb_attributes]]; for (int i=0; i<nb_attributes; i++) { NSString* key = @""; […]

iPhone – 获取CGDataProvider背后数据的指针?

我正在尝试获取CGImage并将其数据复制到缓冲区中以供以后处理。 下面的代码是我到目前为止的,但有一件事我不喜欢它 – 它复制图像数据两次。 一次用于CGDataProviderCopyData() ,一次用于:getBytes:length调用imgData。 我还没有找到一种方法将图像数据直接复制到我的缓冲区并删除CGDataProviderCopyData()步骤,但必须有一种方法……任何指针? (… pun ftw) NSData * imgData =(NSData *)(CGDataProviderCopyData(CGImageGetDataProvider(myCGImageRef))); CGImageRelease(myCGImageRef); //我有一个以前定义的指向名为“mybuff”的可用缓冲区的指针 [imgData getBytes:mybuff length:[imgData length]];

如何解决Objective-C ++中出现的链接错误,而不解决Objective-C中出现的链接错误?

我正在将我的App Delegate文件从.m转换为.mm(Objective-C到Objective-C ++),以便我可以访问用Objective-C ++编写的第三方库。 在Objective-C中,我的app委托构建并运行良好。 但是当我更改扩展时,项目构建并且我得到链接错误,所有这些都是我用C编写的静态库中缺少的符号。 错误是经典链接错误,格式如下: “MyFunction(arguments)”,引自: – MyAppDelegate.o中的[MyAppDelegate myMethod] 未找到符号 所有问题都在app delegate对象中。 我知道我已经准备好编译Objective-C ++,因为我的ViewController文件是.mm。 所以我的问题有几个部分。 首先,这些符号真的不存在,因为我不能使用它们吗? 换句话说,是否无法从Objective-C ++文件访问普通的旧C函数? 如果这是真的,那很不幸。 我认为几乎所有的Objective-C代码,以及至少构建为.mm的所有Objective-C代码都是有效的Objective-C ++。 我错了吗? 如果没有,任何想法如何防止这些错误? 是否存在Objective-C ++中我不了解的标题规则? 感谢您的帮助。

iPhone – 使用C ++教程/片段的OpenGL

关于如何在iPhone上通过C / C ++使用OpenGL,是否有任何好的教程或代码片段?

另一种速度提升可能吗?

感谢受访者对这个问题的回答( 这个循环很慢,我认为因为我创建了很多中间字符串。我怎样才能加快速度? )我能够将代码加速多个数量级。 我想我可能会做得更好一些。 是否有可能避免在这里创建一堆NSString,而是将大的NSString(routeGeom)拆分成一堆char缓冲区并迭代这些缓冲区? 我从来没有做过任何C编程,所以如果你知道如何完成这项工作,我将不胜感激! NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate]; NSString *routeGeom = [pieces objectAtIndex:1]; NSArray *splitPoints = [routeGeom componentsSeparatedByString:@”],[“]; routePoints = malloc(sizeof(CLLocationCoordinate2D) * ([splitPoints count] + 1)); int i=0; for (NSString* coordStr in splitPoints) { char *buf = [coordStr UTF8String]; sscanf(buf, “%f,%f,”, &routePoints[i].latitude, &routePoints[i].longitude); i++; }

从分数到十进制和后退?

是否有可能在某种变量中存储3/6的分数? 当我尝试这个时它只存储/之前的数字。 我知道我可以使用2个变量并将它们分开,但输入来自单个文本字段。 这是可能吗? 我想这样做,因为我需要计算小数几率的分数。 一个额外的问题;) – 是否有一种简单的方法来计算分数的十进制值? 谢谢..

#import仍会出现“重复符号”错误

当我编译我的iPhone应用程序时,xCode为MyConstants.h中的变量提供了“重复符号”错误 我想如果我用过: #import “MyConstants.h” 它会避免这种情况吗? 但我仍然有问题。 补充信息: 在“链接”期间发生错误。 (我只是使用xCode的“Build and Go”按钮。) 我也尝试了(不需要#import)#ifndef / def方法。 也许我应该问这个: 如果您需要在所有源代码文件的每个部分中访问常量…您将在.h文件中放置什么? 您将使用什么将该常量包含在代码的其他部分中。 我想(但我猜它不是)它很简单: MyConstants.h> int thisIsGlobal = 123; (不管我在哪里,我都会在任何代码中的任何地方重新定义thisIsGlobal。) 然后在我的其他每个源文件的顶部只添加“#import MyConstants.h”。

C代码运行得更快吗?

从Objective-C调用C代码是否有任何性能提升? 我读过某个地方,与使用函数调用的其他语言相比,消息传递速度较慢。 因此,如果我从Objective-C代码调用C函数,我是否避免了消息传递开销? 在优化性能时,是否建议使用C语言编写最关键的函数和过程而不是使用Objective-C对象? 编辑: 鉴于有关过早优化和代码可读性的警告的数量,我想澄清我没有考虑常规应用程序,但非常具体的应用程序,如: 图像 加密或压缩算法。 数学 通常,函数或过程不需要OO设计,并且打算使用参数多次调用。

将库包含为二进制与源的注意事项

我正在尝试为iPhone编写SSH客户端,我想使用libssh2开源库来实现。 它是用C语言写的。 我该如何为我的iPhone应用程序包含此C库? 我应该将它编译成我包含在我的应用程序中的二进制文件,还是将所有源代码添加到我的项目中并尝试将其与我的应用程序的其余部分一起编译?

如何在Xcode LLVM中编写关于LOOP的内联汇编代码?

我正在研究内联assembly。 我想在Xcode 4 LLVM 3.0编译器下在iPhone中编写一个简单的例程。 我成功编写了基本的内联汇编代码。 例子: int sub(int a, int b) { int c; asm (“sub %0, %1, %2” : “=r” (c) : “r” (a), “r” (b)); return c; } 我在stackoverflow.com找到它并且它工作得很好。 但是,我不知道如何编写有关LOOP的代码。 我需要汇编代码 void brighten(unsigned char* src, unsigned char* dst, int numPixels, int intensity) { for(int i=0; i<numPixels; i++) { dst[i] = src[i] + […]