草庐IT

objc_class

全部标签

ios - 使用关联引用在 Objective-C 类别中伪造实例变量 - 错误 "Use of undeclared identifier ' OBJC_ASSOCIATION_RETAIN”

我正在尝试使用objc_setAssociatedObject创建类别中的“假”实例变量,如post中所述.但是,我在iOS6.1中使用ARC时遇到以下错误:Useofundeclaredidentifier'OBJC_ASSOCIATION_RETAINforthefollowingcodesnippet:-(void)setStyleName:(NSString*)styleName{objc_setAssociatedObject(self,kDHStyleKey,styleName,OBJC_ASSOCIATION_RETAIN);}iOS6.1有什么变化吗?我错过了什么?

基于Class实现简易的promise

用class实现了一个简易的promise包含三种状态:pending、fulfilled、rejected,同时做了状态凝固实现了resolved、reject的异步执行,利用了一个数组来保存当then时state仍然为pending的问题实现了链式调用,在then中返回了一个promise,且对onFufilled及onRejected做了类型判断4.resolvePromise函数:判断对then中返回值的不同类型做了相应处理,同时针对then中return的promise2与回调函数中返回的结果x做了判断,防止循环引用报错5.最后,由于在获取步骤四中回调函数的返回结果x时,return

iOS SDK : Renaming a lot of classes

我正在开发一个集成了其他SDK(例如FacebookSDK3.5)的iOSSDK。为了防止冲突并允许我的客户也导入这些SDK,我想重命名我的代码中的所有类/枚举(例如,将FBSession重命名为RDFBSession等)。有没有一种简单的方法可以做到这一点,而不是逐个类地使用Xcode的重命名功能? 最佳答案 Apple提供了一个名为tops(1)的命令行工具设计用于编写大规模代码重构脚本(重命名C函数、Objective-C方法、类和其他标记):tops-verbosereplace"FBSession"with"RDFBSes

ios - socket.IO-objc 与 AZSocketIO

来自listofSocket.IOimplementationsinotherlanguages,我们可以看到有两个用Objective-C写的备选方案。我的问题与这两个库各自的优缺点有关。socket.IO-objc看起来更完整并且有更好的文档,但我也想知道有哪些优点AZSocketIO提供考虑这些优势是否足够重要,让我的项目选择一个或另一个。如果有人使用过其中之一,可以给我一些建议,我将不胜感激。谢谢! 最佳答案 AZSocketIO有CocoaPods。这对我来说是一场胜利。 关于

ios - 我该怎么做才能不必在所有类(class)中都#import <CoreData/CoreData.h>?

如果您使用Xcode创建一个新项目并告诉它在您创建项目时创建一个CoreData模板,则您不需要#import在使用ManagedObjects的类中。我已经将CoreData存储添加到一个预先存在的项目中,该项目不是以CoreData模板开始的,并且发现我必须在我的所有类中#import。无论如何要解决这个问题? 最佳答案 您可以添加#import到prefixheader在您的项目中使用(例如,在#import之后)。您可以在OtherSources下的Xcode项目树中找到前缀header,它应该被命名为yourProject

ios - 代码 8 : Symbol(s) not found for architecture arm64 for pods

更新到Xcode8后,应用程序将无法在设备上运行,只能在模拟器上运行。为添加到项目的所有pod抛出错误:Undefinedsymbolsforarchitecturearm64:"_OBJC_CLASS_$_AFNetworkReachabilityManager",referencedfrom:objc-class-refinFeedViewController.o"_OBJC_CLASS_$_TSMessage",referencedfrom:l_OBJC_$_CATEGORY_TSMessage_$_OverrideinNotificationMessenger.oobjc-cl

objective-c - 我应该什么时候调用 removeObserver :forKeyPath from within a closing ViewController class that is observing a persistant Model class?

我有一个ViewController类,它有一个模型属性,我想在模型属性发生变化时观察它。在我的模型对象中,我有一个属性会在我的应用程序后台定期更新。当它更新时,我需要在我的ViewController中执行代码。为此,我在我的ViewControllerviewDidLoad方法中为我的模型创建了一个观察者。[ModelObjectaddObserver:selfforKeyPath:@"State"options:NSKeyValueObservingOptionNewcontext:nil];如您所见,这没什么特别的,只要我将View显示在屏幕上,观察方法就会正常运行。如果我从父

ios - ObjC : memory usage of delegate vs block?

我正在比较Objective-C中委托(delegate)与block的内存占用,以解决相同的问题。比如有一个worker类,做一些工作://delegate@protocolWorkerDelegate:NSObject-(void)workHasBeenDone;@end//blocktypedefvoid(^WorkerBlock)();@interfaceWorker:NSObject@property(nonatomic,weak)iddelegate;@property(nonatomic,copy)WorkerBlockblock;-(void)doTheWork;@en

objective-c - 我怎样才能知道父类(super class)是否也实现了我的子类实现的相同方法?

我想知道父类(superclass)是否从我的子类中实现了方法A,而我的子类也实现了方法A,这样我就可以安全地从我的子类中调用[superA]而不会出现异常。NSObject的respondsToSelector:在这种情况下不起作用,因为它将始终返回true(因为我的子类实现了相关方法)。有什么想法吗? 最佳答案 您可以使用类方法instancesRespondToSelector:来执行此操作。因此,您可以从子类调用[[selfsuperclass]instancesRespondToSelector:@selector(...

ios - ObjC Plist 文件读取速度比 JSON 快?

我做过这个测试项目https://github.com/danielpetroianu/FileDeserializeBenchmarking看看我从应用程序包中读取文件并将其反序列化的最快方法是什么。我惊讶地发现Plist文件的读取速度比JSON快。由于JSON文件较小,我预计它会更快。Xcode在构建时对Plist文件做了一些优化吗?我是否做错了什么导致JSON反序列化花费更多时间? 最佳答案 SinceJSONfilesaresmallerassize,Iexpectedittobefaster.您没有理由相信这一点。有许多因