问题标签 [objective-c++]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 语言混合:模型和视图
考虑开发一个应用程序,其中模型将使用 C++(使用 Boost)编写,视图将使用 Objective-C++(使用 Cocoa Touch)编写。
哪里有一些例子展示了如何集成 C++ 和 Objective-C++ 来开发 iPhone 应用程序?
objective-c - 跟踪所有 Objective-C 的 alloc/allocWithZone/dealloc
很抱歉描述太长,但是问题并不那么容易......
我的项目在没有 GC 的情况下编写。最近我发现了一个我找不到的内存泄漏。我确实使用了新的 Xcode Analyzer,但没有结果。我确实逐行阅读了我的代码并验证了所有 alloc/release/copy/autorelease/mutableCopy/retain 和 pools... - 仍然没有。
序言:由于某种原因,Standard Instruments 和 Omni Leak Checker 对我不起作用(Omin Tool 拒绝了我的应用程序,Instruments.app(Leaks)占用了太多内存和 CPU,所以我没有机会使用它)。
所以我想编写并使用我自己的代码来挂钩和跟踪“所有”alloc/allocWithZone:/dealloc 消息统计信息,以编写一些简单的自己的泄漏检查库(主要目标只是标记可能泄漏的对象的类名)。
我使用的主要挂钩技术:
- 像这样的代码钩住 alloc 方法,而 dealloc 作为 NSObject 类别方法。
我为以前的方法实现保存 IMP,然后注册并计算所有 alloc/allocWithZone:调用为增量 (+1) stat-array NSInteger 值,而 dealloc 调用为减量 (-1)。
作为终点,我调用先前的实现和返回值。
在概念上一切正常。
如果需要,我什至可以检测类何时是类集群的一部分(如 NSString、NSPathStore2;NSDate、__NSCFDate)...通过一些规范化功能(但对于下面描述的问题无关紧要)。
但是这种技术有一些问题:
- 并非所有类都可以被捕获,例如,[NSDate date] 在 alloc/allocWithZone 中没有捕获:但是,我可以在 GDB 中看到 alloc 调用
- 由于我试图使用自动单例检测技术(基于retainCount readind)从最终统计信息中自动排除一些对象,当启动完整的Cocoa应用程序(实际上,甚至是简单的Objective-C命令行)时,NSLocale创建冻结在预初始化阶段包含 Foundation 框架的实用程序在 main()) 之前有一些额外的初始化 - GDB 有 allocWithZone: 一个接一个地调用,....
此处上传的完整概念项目草稿源:http: //unclemif.com/external/DILeak.zip (3.5 Kb)
从Terminal.app运行make来编译它,运行./concept来展示它。
第一个问题:为什么我不能通过挂钩 alloc 和 allocWithZone: 方法来捕获所有对象分配?
第二个问题:为什么挂钩 allocWithZone: 在某些类的 CFGetRetainCount (或 [inst retainCount]) 中冻结...
iphone - 为什么断言只是终止为 iPhone 编译的程序?
我正在调试一个严重 assert() 的 iPhone 应用程序(Xcode、Objective-C++ 和设备模拟器)。在某些情况下,断言失败只会终止应用程序,而不是像我期望的那样闯入调试器。
我通过实施我自己的有点断言来解决:
(绒毛省略),但我想知道是否有人遇到过这种情况。我无法确定它何时中断以及何时终止的模式。代码没有线程化;它所做的一切都是在事件处理程序中完成的。
为什么会发生这种情况,我如何让 vanilla assert() 表现得像一个条件断点?
iphone-sdk-3.0 - 如何在目标C中使用c ++模板类
我想在我的 Objective C 项目中使用 C++ 的模板类。我读过它是受支持的。
当我尝试导入用 C++ 编写的模板类时,我收到很多错误,例如
找不到“类”的协议声明等。
谁能给我一个简单的例子。
等待回复。
c++ - Cocoa 和 Objective-C++
我想我了解 Objective-C++ 与 Cocoa 相关的工作原理,并且我相当精通命令行 C++ 的基础知识,但有点害怕尝试将其与 Objective-C 混合使用。我可以在 Xcode 中使用 Interface Builder 创建 GUI,甚至可以自动为接口创建类(.h 和 .m 文件)。出口,也许是动作(我仍然感到困惑)将大括号打开以放入您自己的代码。所以我可以将 C++ 代码放在这些括号中以从这些按钮中获取输入(并查看输出等) ?
我想如果是这样的话,一个人就不必学习任何 Obj-C,只要他们知道将 C++ 代码放在哪里!我错了吗?
另外,任何人都可以帮助我弄清楚这一点,或者至少指出我可以了解更多信息的地方吗?这个话题在网络上相当稀缺,我不了解 Apple 的文档。
objective-c - Objective-C 与 Objective-C 2.0 之间的差异
我预订了同一天来的 2 本书。我在架子上看到了它们并意识到它们是相同的,除了一个是关于 ObjC 的,一个是关于 ObjC 2.0 的。
另外,什么是Objective-C++?
iphone - Objective-C++ 语言:我在哪里可以找到有关它的更多信息?
我已经学习 C++ 几个月了,发现它是一门优秀的语言,尽管它有好处。
我想知道所谓的Objective-C++到底是什么,是否值得学习它作为针对 Apple 环境(即 Mac OS X、iPhone OS)的主要开发语言。在网上搜索我只找到了几篇好文章:主要是Wikipedia 的条目和Mac Dev Center的一篇。
维基百科说:
Objective-C++ 是 GNU Compiler Collection 的前端,它可以编译使用 C++ 和 Objective-C 语法组合的源文件。Objective-C++ 向 C++ 添加了 Objective-C 对 C 的扩展。
Mac 开发中心文章补充说:
Apple 的 Objective-C 编译器允许您在同一个源文件中自由混合 C++ 和 Objective-C 代码。这种 Objective-C/C++ 混合语言称为 Objective-C++。有了它,您可以利用 Objective-C 应用程序中现有的 C++ 库。
Apple 文章称 Objective-C++ 是一种语言。这是正确的吗?
我想知道以下内容:
- 在不了解 C/Objective-C 的情况下,是否可以学习和使用 Objective-C++?
- 是否有任何可以获取更多信息和/或帮助的好书、网站、论坛等?
- 据你所知,有没有用 Objective-C++ 完成的大项目?
c++ - 使用长度和编码将 const char* 字符串转换为 NSString
我想知道哪种方法可以更好地将 const char* 字符串转换为 NSString。
我发现有一些事实。
- [NSString stringWithCString:length:] 有点过时了。
- [NSString stringWithCString:encoding] 可以用于我的目的
但我想用长度和编码进行转换(因为如果我有一些非 ASCII 字符,我想通过将编码设置为 UTF-8 来做到这一点)。有什么想法吗?
我现在只想
- 使用 std::strncpy(ch1, ch2, len) 创建其他字符并按长度复制
- 使用 [NSString stringWithCString:encoding:]
但效果不好。
xcode - xcode“编译源为”覆盖特定文件
我有一个项目,必须将“编译源为”值设置为“Objective-C++”(不,“根据文件类型”在我的主项目中不起作用)。我从框架(特别是 OpenFeint)获得的文件有问题,该文件在编译为“Objective-C++”时出现编译错误。
我可以在设置为“根据文件类型”为“编译源为”值的测试项目中编译文件。所以我想知道如何设置一个特定的文件来编译为Objective-C?如果我可以在我的实际项目中将这个文件编译为 Objective-C,那么一切都应该完美协调。
任何帮助表示赞赏。
谢谢!
c - 是否禁止从 Objective-C++ 类方法体中调用经典 C 函数?
我经历过 Objective-C++ 的一些奇怪行为。我有一个 Objective-C++ 类,它在方法体中调用一个经典的 C 函数。但是链接器找不到 C 函数。
我在这里描述了这个问题: Xcode print symbol not found for my C function which used in Objective-C method body
我通过将 Objective-C++ 类更改为 Objective-C 类解决了这个问题,但问题仍然存在。它是否禁止在 Objective-C++ 类中调用 C 函数?