在Xamarin Studio中以编程方式创建NSView
我试图找到一个我之前提出的问题的解决方案: in xamarin.mac应用 我当前正在尝试实现NSOutlineViewDelegate的GetView方法,以查看是否可以在我拥有的大纲中创建一些文本. ,但我坚持尝试将内容添加到NSView对象.当我查看示例大概(默认情况下,将其拖到窗口时获得的示例)时,每个项目都有一个TableCellView.结构看起来像这样(首先是标题,然后是常规项目): Table Cell View Static Text - HEADER CELL Text Field Cell - HEADER CELL Table Cell View Image View Image Cell Static Text - Table View Cell Text Field Cell - Table View Cell 到目前为止,我的方法看起来像这样: public override NSView
0 2024-04-16
编程技术问答社区
用C#和Mono为OS X构建Cocoa UIs
是否有人花了任何时间来比较各种目标C桥和相关的可可包装器的单声道? 我想移植现有的C#应用​​程序以在OS X上运行.理想情况下,我会在单声道上运行该应用程序,并为其构建本机可可UI. 我想知道哪个桥是最好的选择. 如果对任何人都有用,这里有一些我到目前为止发现的桥梁的链接: cocosharp - 在OS X上用Mono分发 - monobjc - 比其他人更好的文档(我认为) - www.monobjc.net > nobextive - (显然)比其他速度快 - 代码.google.com/p/nobextive mobjc/mcocoa - code.google.com/p/mobjc and code.google.com/p/mcocoa objc# - 解决方案 Mono团队发布了一座名为Monomac的新桥. 本质上是他们为iPhone生产的单调框架的桌面版本. Miguel在他的博客上宣布了新的桥梁: htt
0 2024-04-14
编程技术问答社区
混合使用C#和Objective-C
我想使用较大的C#代码作为Objective-C(可可)应用程序的库. 我发现了包装可可代码的Monomac项目,但是我宁愿用Objective-C编写标准可可应用程序,该应用程序可以调用包装C#代码(其他方式). 在Windows上,我被用来制作C ++/CLI项目,该项目包装了.NET代码和导出基于C/C ++应用的普通C接口. 是否有一些简单的方法可以实现这一目标? 解决方案 显然没有Mac OS上的C ++/CLI之类的语言.在Windows上,C ++/CLI实际上按照CLR运行的托管代码编译,该代码运行本机代码;由于在Mac OS上没有集成到系统上,因此相反.您的应用程序是本地的,它可以托管托管代码. 单声道公开了功能,以在过程中托管CLR虚拟机.由于CLR类并非直接接触您的C代码,因此您可以通过类似反射的调用来调用对象的方法. 有有关如何将单声道嵌入应用程序的文档在官方网站上.因为您对" CIL Universe中的调用方法" 部分.在
0 2024-04-14
编程技术问答社区
目标c中的代表
首先,我应该告诉您,我对目标C或C#的知识很少,因此当我的一所大学问我是否有Objective C中的代表中是否有类似的代表时,我想知道这一概念是否存在于Objective-C.我猜测代表中是否存在我们在iPhone编程中使用并不相同.C#代表是功能指针吗?这样的设施在使用多个视图时很高兴.我可以在哪里找到信息? 解决方案 Objective-C中的委托仅仅是一个概念,而不是某种实现伪像(例如C#中的伪像). Objective-C中的代表(更好:可可)基本上是一个对象,该对象被谁用作某些事件的"委托"通知.还可以要求代表代表主机对象执行某些任务.代表需要实施的接口通常由协议正式化. @protocol ActionDelegate - (void) actionDidStart: (id) aSender; - (void) actionDidEnd: (id) aSender; @end @interface Action: NSObject { id
0 2024-04-14
编程技术问答社区
如何在 objective-c 项目中使用纯 C 文件?
简单的问题: 我创建了一堆C助手例程,并试图将它们包括在项目中.我以为以下是可以的. myfuncs.h typedef struct { float n; } MyStruct; float Operation(MyStruct ms); myfuncs.m #import "MyFuncs.h" float Operation(MyStruct ms) { return ms.n * ms.n; } 但是,我收到一个链接器错误"架构i386的未定义符号"和"从x"引用的"操作(mystruct)" 是否需要设置标头/插入C文件才能工作? 注意:这是针对iOS项目的4.5. 解决方案 否,使用纯C.通常,源文件将被命名为*.c而不是*.m,但是重命名*.c *.c to *.m不应导致错误. 但是,有一个线索: Operation(MyStruct)从x 引用 如果链接器知道函数参数的类型,则是因为您正
0 2024-04-09
编程技术问答社区
LDAP认证,ldap_sasl_bind_s不工作,但ldap_simple_bind_s工作
我有一个问题,在ldap_sasl_bind_s中不起作用,但是ldap_simple_bind_s有效. 奇怪的是,LDAP_SASL_BIND_S即使使用错误的密码也可以使用,并给用户感觉到他输入了正确的密码. PFA代码段的问题,建议我如果我的方法有任何问题. { int rc, aReturnVal = 0; NSString *aUserDN = [NSString stringWithFormat:@"uid=%s,cn=users,dc=example,dc=com", username]; char* userDN = (char*)[aUserDN UTF8String]; rc = ldap_simple_bind_s ( ld, userDN, password );
2 2024-04-09
编程技术问答社区
迅速访问C结构
我正在开发一个用于解析CVS文件的OS X Swift应用程序.它在Objective-C中成功运行.然后,我更改为Swift,为了改善性能,我在C中开发了解析/进口引擎.它的速度快5倍,就像Swift或Objective -C-尼斯一样.但是我很难在C和Swift之间交换数据 - 尤其是结构: BridgingHeader: #include "ToolBoxC.h" toolboxc.h: void loadFile(const char *fileName, const char *delimiters, const char *xRegex, int xRegexColumn, int xColumn, int yColumn, int xRow, int yRowShift, bool collectStrings); typedef struct { char **headerArray;
2 2024-04-09
编程技术问答社区
在Cocoa/Objective-C中创建看门狗的原因和方法
祝大家星期一快乐! 这是我的情况.任何帮助都非常感谢! 我创建了一个可执行文件,安装后,将其放置在计算机的启动代理文件夹中.从理论上讲,它应该永久运行,每秒收集数据.当机器入睡时,它可以停止,但是当计算机重新激活时重新启动. 这是我的问题:有时该程序通常会自发停止,通常是在运行几天后.如果重新启动计算机,则程序将重新启动并在同样的问题发生之前再次运行. 我不知道造成这个问题的原因,但是朋友告诉我可以创建一个"看门狗",每分钟都会检查我的可执行文件是否正在运行.如果不是这样,那么看门狗将重新启动可执行文件. 关于如何执行此操作的任何指针?我的应用程序用Objective-C和Cocoa编写并在Mac上运行. 非常感谢! 编辑1 我将解释该应用程序如何尽我所能.基本上,它是C和Objectives C中编写的方法的集合,每秒查询有关系统的信息: bytes传输 - 键盘活动 - -Mouse活动 - - 硬盘二用的时间 - 具有键
2 2024-04-09
编程技术问答社区
使用Objective-C程序化地释放系统内存
所以,这就是我要做的: 释放系统内存(不活动内存),以相同的方式purge命令也是如此. 我在这里尝试了代码(作者声称其有效),但它所做的只是使Mac OS X冻结: void free_up_memory() { int c; char *p, *q; for(c = 0; c
0 2024-04-09
编程技术问答社区
在Objective C(Cocoa)线程中运行C代码(适用于iOS)。
首先,我是一个非常新的目标C/可可iOS开发人员,但我之前写过C/C ++应用程序. 因此,我设法在iPhone应用程序内运行了RabbitMQ-C(http://hg.rabbitmq.com/rabbitmq-c.com/rabbitmq-c/),我可以直接从我的应用程序连接到rabbitmq,甚至消耗queue项目.所以一切都很好. 现在,我的问题是,我的iPhone应用需要使用RabbitMQ-C库进行轮询,以从服务器中输入消息.循环时可能会有几乎是无限的. 我必须将其带到新线程吗?理想情况下,我想将RabbitMQ-C类作为异步目标C类包装,并使用nsnotification(或类似的内容)通知我的UI.我对创建一个新线程有些谨慎,因为我阅读了诸如Runloop等的内容,可以解决很多问题而无需使用额外的线程. 我最好的方法是什么?任何代码或指示示例都将有所帮助.请记住,我不是在这里处理目标C代码/可口可乐兔子库,我在iPhone应用程序中使用C代码.
0 2024-04-08
编程技术问答社区
64位NS_OPTIONS比特掩码
上下文 我正在使用NS_OPTIONS宏来创建一个bitmask.我已经为它分配了一种NSInteger>,并且由于我在一个64位平台上进行构建,因此应该给我63个"插槽"来使用(64位用于签名的位置). 这是枚举: typedef NS_OPTIONS(NSInteger, LPSVGOPlugin) { LPSVGOPluginNone = 0, LPSVGOPluginCleanupAttrs = 1
0 2024-04-08
编程技术问答社区
如何在所附的C阵列中正确释放内存?
我只是想弄清楚为什么以下代码泄漏内存,我有一种有趣的感觉,我没有正确释放数组内存.这是更广泛的Objective-C应用中的C函数,我不是C ...我尝试在数组上使用Free(),但是感觉这不是整个故事... 有人可以看看,看看我在这里缺少什么.谢谢! CFIndex theNumberOfSettings = 3; CTParagraphStyleSetting theSettings[3] = { {kCTParagraphStyleSpecifierAlignment, sizeof(CTTextAlignment), &alignment}, {kCTParagraphStyleSpecifierLineSpacing, sizeof(lineSpacing), &lineSpacing}, {kCTParagraphStyleSpecifierHeadIndent, sizeof(headIndent), &headIndent} }; C
0 2024-04-08
编程技术问答社区
objective-c nsarray to c array
对不起,我什至不确定该怎么问,因为我是C,Pointers和类似内容的完整新手.有一个函数接受一个参数:char **arg.如果我这样写这个论点: char *cargs[] = {"blah", NULL}; 并将其传递到功能: function(cargs); 它有效.但是...我有一个NSStrings的NSArray,我需要从NSArray的值中制成此数组.我认为这应该是创建与NSArray相同元素的C数组并复制字符串,并用cStringUsingEncoding转换它们的问题.但是老实说,我不知道该怎么做,因为我与所有这些指针感到困惑.任何帮助将不胜感激. 解决方案 好吧,粗略的步骤可以是: 使用 count nsarray的方法知道NSArray中有多少个NSString. 使用malloc为cargs分配内存,类似于此 char **cargs = (char **) malloc(sizeof(char *) * count
0 2024-04-08
编程技术问答社区
Cocoa应用程序中的资源文件夹路径
我正在使用使用某些C文件的Mac OS X应用程序,并且我有一个配置文件,我将其添加到应用程序资源中. 我的问题是"资源文件夹的相对路径是什么?" 我尝试了 " [myAppName] .app/contents/resources/config.cfg" ,只有在我从Xcode运行我的应用时,它才能正常工作,否则它不起作用! 我认为该应用程序从" MacOS"文件夹开始,因此我使用了此路径: " ../资源/config.cfg" 但也没有起作用:( 任何帮助请 解决方案 使用相对路径要求麻烦.幸运的是可可会为您提供绝对的路径: NSBundle *myBundle = [NSBundle mainBundle]; NSString *absPath= [myBundle pathForResource:@"config" ofType:@"cfg"];
0 2024-04-08
编程技术问答社区
C语言中的Objective-C 块
在读取块中的概念概述时>,我看到了以下语句: 尽管纯C和C ++可以使用块,但也是一个块 始终是一个objective-c对象. 这怎么可能?我的意思是纯purec.我感到困惑. 解决方案 这怎么可能?我的意思是纯c. 中可用的objective-c对象 马特·加拉格尔(Matt Gallagher)写了一篇文章很好地解释了封锁的工作方式 .简而言之,将块定义为满足要求为有效的Objective-C对象的结构(例如,结构以isa指针开头).这些都不会给C引起问题,并且编译器知道块的定义是什么,因此,即使编译了普通的旧C,它仍然可以做正确的事情来使块正常工作. 块的添加的Objective-C方面不影响C中的块的使用方式,但仍然提供了将块作为对象将块视为对象的能力,以便可以将它们添加到集合中并像其他任何对象一样进行管理. 这并不是那么奇怪.如果您考虑它, all objective-c对象在某种程度上在C中"可用" - enterire object
0 2024-04-08
编程技术问答社区
在ObjectiveC中使用指针的最大优势是什么?
我意识到99%的人认为"什么是H ***……",但是请帮助我围绕使用pointers的概念.我敢肯定我的具体问题会帮助许多新手. 我了解指针是什么,并且它们是对内存中的地址的引用,并且通过使用(*)操作员可以在该地址中获得值. 假设: int counter = 10; int *somePointer = &counter; 现在,我有了counter的地址,我可以通过这样做间接指出其值: int x = *somePointer; 哪个使x = 10,对? ,但这是最基本的例子,在这种情况下,我可以使用int x = counter;并获得该值,因此请解释为什么Pointers在Objective-C和其他一些语言中确实是如此重要...情况只有指针有意义吗? 感谢它. 解决方案 Objective-C具有指针,因为它是C的演变,它广泛使用了指针.像Objective-C这样的面向对象的语言中指针的优点是,创建对象后,您可以将指针传递
2 2024-04-08
编程技术问答社区
例子 [NSDictionary getObjects:andKeys:] 的例子
我找不到方法[NSDictionary getObjects:andKeys:]的工作示例.唯一的示例t编译.我在这里提供了错误/警告,以防有人在寻找它们. 我感到困惑的原因是因为大多数nsdictionary上的方法返回NSArray.但是,在文档它指出该方法的OUT变量以C数组的形式返回. 以下是错误消息/警告,如果您按照链接示例: NSDictionary *myDictionary = ...; id objects[]; // Error: Array size missing in 'objects' id keys[]; // Error: Array size missing in 'keys' [myDictionary getObjects:&objects andKeys:&keys]; for (int i = 0; i
0 2024-04-08
编程技术问答社区
纯C语言的Cocoa OpenGL窗口?
我想打开一个OpenGL窗口(以显示和获取MacOSX中的击键/鼠标事件). 我不想使用Glut(因为它要求它是根线). 我不想学习目标c. 无论如何是否可以访问纯C? 中的OpenGL API 谢谢! 解决方案 我最终使用了glfw. 首先,键盘事件不起作用;但是他们有一个用于建造捆绑包的示例脚本.之后,完美无瑕. 其他解决方案 如果要在OS X上获取事件,则有几个选项: SDL.强烈建议,C,不是很灵活.您需要在使用它的系统上安装它,或在应用程序捆绑包中包含框架. 可可.如果您需要更多的灵活性,请使用此功能. 碳.我不建议使用此API,但它是纯粹的c. 目标C是纯C代码的一小部分.通过使用可可API,您不必学到很多东西.根本不是C ++的野兽.如果您知道C,则可以在几个小时内学习所有需要的东西.网络上的所有最佳示例代码和文档都是用于可可,而不是碳.有OpenGL示例代码GALORE,使用Cocoa,整个网和Apple Dev
0 2024-04-08
编程技术问答社区
如何对iPad应用程序进行分类倾销?
我正在尝试运行类dump iPad应用程序来探索其体系结构.我使用UNARCHIVER提取了.IPA文件,并在有效载荷文件夹中,在.App文件上运行了类dump.但是,我得到了这个错误: /* * Generated by class-dump 3.3.3 (64 bit). * * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2010 by Steve Nygard. */ #pragma mark - /* * File: /Users/jason/Desktop/foo/Foo.app/Foo * UUID: 1234567890 * Arch: arm v7 (armv7) * * Objective-C Garbage Collection: Unsupported * This file is encrypted: *
0 2024-04-08
编程技术问答社区