Tag: ios

写入磁盘的最快方式 – iOS

我正在使用C函数并希望将数据保存到磁盘。 读取和写入此数据的最快方法是什么。 我将char*和intptr_t为NSString和NSNumber ,将它们存储在字典中,然后将每个字典存储到NSMutableArray 。 但是,是否有更快的方式来存储此数据而无需将值包装在Objective-C对象中? static void _print_image(const struct mach_header *mh, bool added) { Dl_info image_info; int result = dladdr(mh, &image_info); if (result == 0) { printf(“Could not print info for mach_header: %p\n\n”, mh); return; } const char *image_name = image_info.dli_fname; const intptr_t image_base_address = (intptr_t)image_info.dli_fbase; const char *log = added ? “Added” : […]

如何从DLL设置委托/回调(C和C#之间的互操作)

我有一个静态库(* .a for iOS),它包含一些我需要分配给C#回调的函数。 代码在没有回调的情况下工作正常,但是当我将委托添加到结构时,它失败并出现以下错误: ArgumentException: The specified structure must be blittable or have layout information. Parameter name: structure at FMOD_Listener.LoadPlugins () [0x00000] in :0 at FMOD_Listener.Initialize () [0x00000] in :0 (Filename: currently not available on il2cpp Line: -1) 这是本机代码(C): extern “C” { typedef void (F_CALLBACK *basic_callback) (int *value1); typedef struct telephone { int area_code; […]

Excel公式计算

我正在尝试在我的iOS应用中添加电子表格编辑function。 我使用gridview显示(与问题无关),我使用LibXL将数据加载到视图中。 那部分一切都很好,但我没有办法在细胞被修改后计算公式。 看来,当我用LibXL编写一个公式时,它不会计算新值,只需设置公式值(字符串)。 因此,当我尝试从该单元格中读取数字值时,它仍然设置为最后计算的数字(来自excel)。 同样,如果我创建带有数字的单元格和一个公式单元格来SUM它们,那么在Excel中打开它之前,它实际上从未计算过读取0数值。 我希望LibXL是我问题的灵丹妙药,但现在我只停留在公式字符串值(即”SUM(A1:b2)” )和最后一个计算值。 我很乐意,如果LibXL只是DID计算值,我只是把它全部弄错了,但我看不到任何其他说明的文档。 如果不是这样的话,我可以使用任何Obj-C,C或C ++库来匹配Excel公式语法并计算这些值吗?

如何传入一个void参数的对象?

我正在使用MusicPlayer API,我正在尝试解决用户回调问题。 我有用户事件放在MIDI的每个音符事件中。 播放音符时,这些用户事件将音符的整数值传递给用户回调函数* inEventData: void noteUserCallback (void *inClientData, MusicSequence inSequence, MusicTrack inTrack, MusicTimeStamp inEventTime, const MusicEventUserData *inEventData, MusicTimeStamp inStartSliceBeat, MusicTimeStamp inEndSliceBeat) { UserEvent* event = (UserEvent *)inEventData; UInt32 size = event->length; UInt32 note = event->playedNote; UInt32 timestamp = event->tStamp; NSLog(@”Size: %lu Note: %lu, Timestamp: %lu”, size, note, timestamp); switch (note) { case 60: [whiteKey60 […]

链接器错误 – 尝试链接arm,但链接器使用x86

我试图将这个C库交叉编译为iOS库,即用于armv7机器。 我正在使用OSX机器来编译库。 该项目设置为使用Autoconf – 这是我正在使用的选项: ./configure –host=arm-apple-darwin –prefix ~/dev/xmlrpc-c-1.25.28/iOS_bin_arm CFLAGS=”-arch armv7s -isysroot /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=4.0″ –disable-curl-client –disable-cplusplus LDFLAGS=’-arch armv7s -miphoneos-version-min=4.0 –sysroot /Applications/XCode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk’ 编译好了。 问题发生在链接阶段: ld: warning: ignoring file parse_datetime.osh, file was built for armv7s which is not the architecture being linked (x86_64): parse_datetime.osh ld: warning: ignoring file parse_value.osh, file was built for armv7s which is not […]

没有相机可以使用Vuforia吗?

是否可以在没有相机的情况下使用Vuforia进行图像跟踪? 基本上我想要一个函数,我可以调用图像作为indata参数和图像目标的坐标作为结果。 那存在吗?

在iOS上使用libssh2反向端口转发

我正在使用libssh2在iOS上寻找一个反向端口转发的示例代码。 这是一个接近的例子: libssh2的示例代码用于端口转发 但我希望它可以根据iOS和Objective-C进行定制。 直C也很好。 我对socket和FD代码很谨慎,宁可拥有一个强大的解决方案而不是我正在攻击的解决方案。 我已经尝试了一段时间的RTFMing libssh2,但它最终只是RTF代码…而且我对我的C代码没有足够的信心去做这个网络部分。 编辑:在iOS 4.3(例如iphone4,ipad2)上进行端口转发的ssh工作实现的赏金,不需要特定的libssh2 。

“EXC_BAD_ACCESS”与“分段错误”。 实际上是否相同?

在我的前几个虚拟应用程序中(为了练习而学习)我遇到了很多EXC_BAD_ACCESS ,它以某种方式告诉我Bad-Access是:您正在触摸/访问您不应该访问的对象,因为它尚未分配或取消分配或只是您无权访问它。 看看这个具有错误访问问题的示例代码,因为我试图修改一个const : -(void)myStartMethod{ NSString *str = @”testing”; const char *charStr = [str UTF8String]; charStr[4] = ‘\0’; // bad access on this line. NSLog(@”%s”,charStr); } 虽然分段错误说 :分段错误是一种特殊的错误,它是由访问“不属于你”的内存引起的。它是一种帮助机制,可以防止破坏内存并引入难以调试的内存错误。 每当你遇到段错误时,你就知道你在做错了记忆( 这里有更多描述)。 我想知道两件事。 一 ,我对objective-C’s EXC_BAD_ACCESS吗? 我做对了吗? 第二 , EXC_BAD_ACCESS and Segmentation fault是否有EXC_BAD_ACCESS and Segmentation fault ,Apple刚刚即兴创作了它的名字?

设置NSStreamNetworkServiceTypeBackground“做什么”?

我有一个内部应用程序(不适用于iPhone商店分发,因此不受Apple批准),它需要在运行时保留少量TCP和UDP套接字。 在测试时我注意到我的绑定套接字有一些奇怪的行为 – 它会在设备进入hibernate状态时关闭。 例如,当您按下手机顶部的电源按钮时,会发生这种情况,我真的不希望它这样做。 更不用说它似乎严重违反了BSD套接字API合同。 套接字代码全部用C语言编写,因此不使用Objective-C nsstream库。 我注意到有很多方法可以让VOIP,音乐流和其他东西保持套接字开放。 nsstream文档本身列出了一个NSStreamNetworkServiceTypeBackground属性,这似乎可以帮助我的应用程序在手机进入睡眠状态时保持其套接字打开。 apple docs的底部列出了以下属性: 常量 NSStreamNetworkServiceTypeVoIP 指定流正在提供VoIP服务。 NSStreamNetworkServiceTypeVideo 指定流正在提供video服务。 NSStreamNetworkServiceTypeBackground 指定流提供后台服务。 NSStreamNetworkServiceTypeVoice 指定流提供语音服务。 但由于我的应用程序的网络代码没有使用Objective-C API,我需要知道:上面的常量是如何实现的? 也许有一个未记录的套接字选项,我可以使用它来实现相同的结果? 基本上我只需要告诉内核在设备hibernate时不要弄乱我的套接字。 编辑 :作为逆向工程内核调用的替代方法,也许有一种方法可以将我的套接字文件描述符传递给Objective-C代码,在这些代码中可以应用这些选项?

Objective C委托还是C风格的块回调?

我正在设计一个类,当发生某些事情时,它会“触发事件”。 这些事件往往与非UI相关。 我想知道这样做的最佳方法是什么。 我一直在探索: 代表 我将定义一个委托类,在init函数中接受委托,并在事件发生时调用委托类上的方法。 C风格的积木 我将定义一个函数指针,并在init函数中接受一个函数。 我会在事件发生时调用它。 在这两种情况下,我可能需要处理多个“源”,因此我需要一组委托或块。 我注意到在iOS编程中,代表往往更喜欢UI框架。 但是我来自函数编程背景,我非常适合接受函数点并在调用站点传递lambdas,我喜欢编译器为你处理吊装变量,你通常需要较少的类状态。 但我发现许多iOS开发人员正在使用委托。 iOS中通常首选的机制是什么?