草庐IT

Objective-J

全部标签

c++ - Objective C "@property (nonatomic, retain)"的 C++ 等价物是什么?

我想知道如何在C++中正确创建属性。在ObjectiveC中,我使用“@property”(通常与(nonatomic,retain)属性一起使用)。C++中正确的方法是什么?谢谢!! 最佳答案 正如Seva所说,C++中没有那种意义上的属性。你可以做什么:用boost::share_ptr写一个类成员变量,并可选择为该成员编写getter和setter。但这甚至不是真正必要的,尽管可能被认为是良好的行为。typedefboost::shared_ptrStringPtrT;classA{public:voidsetStringPr

c++ - 如何在 C++ 类中接收来自 Objective-C 的 NSNotifications?

我有一个Objective-C++类,它将自己添加为CocoaNSView上事件的观察者。我希望能够将NSNotifications发送到C++类的方法而不是Objective-C方法或block。我该怎么做?我的情况是这样的:A-Objective-C++类B-NSViewB被A封装了,我想通知B的事件之一。但是,处理该事件的方法必须引用包含B的A实例。 最佳答案 在Objective-C中创建一个死的简单包装类,它指向您的C++实例并通过调用C++方法处理通知。 关于c++-如何在C

c++ - 在 Objective-C 代码中使用带有 C++ 实例变量的 Objective-C++ 类

我正在编写一个Objective-C++类接口(interface),它必须可以从Objective-C和Objective-C++中使用。问题是,因为它必须可以从Objective-C使用,所以我不能简单地使用C++类型。我想用指针来做,我想到了这个:@interfaceSXDiff:NSObject{@private#ifdef__cplusplusdtl::Diff>*_diff;#elsevoid*_diff;#endif}...@end这样做会不会出现什么问题?有更好的方法吗?请注意,使用指针只是为了让Objective-C和Objective-C++中的ivar大小相同。i

c++ - 在 C++ 中使用 Objective-C 类

我是Objective-C的新手,我正在为我们的项目构建一个iCloud实用程序库。我在Objective-C中创建了一个iCloud实用程序类。我注意到有很多关于在Objective-C中使用C++类的问题,但反之则很少。问题是,我们的项目(以及构建我们项目的引擎)完全是用C++编写的,因此,我编写的objective-cicloud类需要可以从我正在编写的C++接口(interface)访问。这是一个例子:iCloudUtils.h#import@interfaceiCloudUtil:NSObject@property(nonatomic,assign,getter=isAvai

c++ - 在 xcode/objective c 中使用 c++

所以我尝试在我的ios项目中使用C++。在创建一个新项目(所有默认设置,全新安装的xcode)后,我创建了一个Question.h和一个Question.mm文件,如下所示:Question.h#include#includeusingstd::string;classQuestion{public:stringtext;};Question.mm#include"Question.h"它尖叫并出现如下错误:Iostream:Nosuchfileordirectory使用Xcode3.2.6和iOSSDK4.3我做错了什么? 最佳答案

c++ - C++ 中的 Objective-C @protocol 等价物

A类有一个B类的实例作为成员。有时B类的实例想要与A类对话。在Objective-C中我可以这样做://A.h@interfaceA:NSObject@property(nonatomic,retain)B*b;@end//A.m-(void)classBsays{}//B.h@protocolBDelegate-(void)classBsays;@end@interfaceB:NSObject@property(nonatomic,assign)iddelegate;@end//B.m@implementationB-(void)f{[delegateclassBsays];}@en

c++ - Objective-C++ 预编译头文件

我正在使用C++库(它恰好在iPad应用程序中,但我不确定这会有什么不同)并且真的很想预编译header以加快构建速度,但是xCode似乎通过C编译器而不是C++编译器运行预编译的头文件。有没有办法让它使用正确的编译器?我已经将所有源文件从.m更改为.mm。 最佳答案 根据Xcodedocs,为每种语言变体生成一个编译头文件。因此,如果您将#include与保护宏括起来,它应该可以工作,即#ifdefined__cplusplus#include"mycplusplusheader.h"#endif

iphone - extern 在 Objective-C 中做了什么?

如果您在一个Objective-C文件中使用extern一个C++方法(而不是一个变量),这到底有什么作用?它允许你做什么?尤其是在iPhone应用程序的上下文中。 最佳答案 它允许您调用位于C文件外部的方法 关于iphone-extern在Objective-C中做了什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4166538/

c++ - 在 Objective-C 代码中使用 extern "C"的链接器错误

我正在尝试创建一些可以从iPhone应用程序中的Objective-C和C++代码调用的实用函数。我有无法编译为ObjectiveC++(.mm)的第三方C++类。我有一个声明我的函数的头文件,然后是一个定义它们的.c文件。我已经检查了三次拼写错误,但出于某种原因,我的链接器无法找到任何函数的定义。这是C辅助函数的header:#ifndefFILE_LOADER_H#defineFILE_LOADER_H#if__cplusplusextern"C"{#endifvoid*loadDataFromFile(constchar*szFilename,boolbDocument);voi

c++ - C++ 类中的 Objective C 成员

是否有可能在C++类中有一个objective-c成员@interfaceObjectiveCClass:UIViewController{intsomeVarialbe;}-(void)someFunction;@endclassCPlusPlusClass{ObjectiveCClassobj;//haveaobjectivecmembervoiddoSomething(){obj.someFunction;//andcallaobjectivecmethod}};任何指导将不胜感激。干杯 最佳答案 要创建可在obj-c和cpp