草庐IT

ios - 自 iOS 8.2 更新后 stringWithUTF8String 返回 nil

我一直在使用stringWithUTF8String将我的NSData转换为NSString,如下所示:if([[NSStringstringWithUTF8String:[responsedatabytes]]isEqualToString:@"SUCCESS"]){dostuff...}它一直运行良好;然而,自8.2iOS更新以来,[[NSStringstringWithUTF8String:[responsedatabytes]]返回零。我用下面的代码解决了这个问题:NSString*responseDataString=[[NSStringalloc]initWithData:

objective-c - Profiler 告诉我与 nil 的比较速度很慢

我有一个方法可以检查NSData的值,如下所示:if(data==nil){//Method}但是,尽管方法中包含所有内容,但事实证明,超过80%的时间花在了第一行,检查data是否等于nil。有没有更有效的方法来做到这一点?截图: 最佳答案 这不是与nil的直接比较。它是一行中的多个语句。划分问题的一种方法是划分陈述。您还可以进入您的实现。简而言之,分析器的突出显示被误解了。分解:NSData*thumbnailData=self.thumbnail;NSUIntegerlength=thumbnailData.length;访问

ios - Foundation 集合无法存储 nil 是否有深层设计原因?

每个人都知道NSArray、NSDictionary和NSSet等Foundation集合不能存储nil对象,并且您必须改用NSNull。我敢肯定,如果我深入研究开源CoreFoundation源代码,我什至可以找到强制执行的位置。我不明白的是,为什么它们是这样设计的?纯粹是因为nil在他们的一些构造函数中被用作哨兵,还是有更深层次的原因导致这种行为? 最佳答案 我不认为你会得到一个满意的答案。这只是一个设计决定,就像塑造Cocoa的其他一千个决定一样。即便当年最初做决定的人现身解释,解释也必然归结为“这对我们来说是最好的”。也就是

ios - 使用 Urban Airship & Phonegap,无法注册设备 : "Device token is nil"

根据github(https://github.com/urbanairship/phonegap-ua-push)上的最新示例,使用Phonegap/Cordova最新v2.3.0的Shiny新版本,我们在iOS注册上遇到了问题带有UA的设备。在我们更新到最新版本之前,我们没有遇到任何问题。我们正在这样注册设备:functionon_reg(error,pushID){console.log("UARegistrationcomplete.")}push=window.pushNotificationpush.registerEvent('registration',on_reg)但

iphone - 使用 RestKit 发布导致发布 nil 对象

我在使用RestKit0.20pre6发布NSManagedObject时遇到问题,它导致在我的Rails站点上创建一个值为nil的条目。我怀疑映射器,但据我所知,我已经正确设置了RK对象。例子很少,支持有限。该示例涉及NSObjects而不是CoreData,因此我不得不做出一些假设。这是我发布的代码,后面是控制台输出。该应用程序可以正常从服务器获取对象。//Synctheaddedobjecttotheserver//****************************************RKObjecMapping*responseMapping=[RKObjectMap

ios - 检查 NSClassFromString 返回的 nil 值

我们可以使用NSClassFromString创建一个类:Classclass=NSClassFromString(@"someClass");idobject=[[classalloc]init];[objecttest];这里没问题。如果字符串给出的类不存在,NSClassFromString将返回nil。很公平,当对象为nil(因为类为nil)时调用[objecttest];不会导致任何问题。作为实验,我将@"someClass"更改为不存在的其他内容。通过记录class的值(当NSClassFromString返回nil时)它显示0x0。随后我尝试替换为测试:idobject=

iphone - 将属性设置为 nil 是否与释放属性相同?

有什么区别self.myObject=nil;和[myObjectrelease];还有,为什么viewDidUnload方法中一般使用前者,dealloc方法中使用后者? 最佳答案 假设一个retain属性,那么这个:self.myObject=nil;将释放对象并将属性的值设置为nil。它还将通过setter方法执行此操作,可能会触发KVO通知。还有这个:[myObjectrelease];将仅释放对象,在属性中留下悬空指针。后者通常用在-dealloc中,因为你不关心对象被释放后变量的值,也因为你不想从对象触发KVO通知那正在

ios - 核心数据获取谓词 nil 检查失败/意外结果?

我有一个包含数千个实体的核心数据层,不断同步到服务器。同步过程使用获取请求来检查deleted_at以实现软删除目的。在performBlockAndWait调用中有一个执行保存操作的上下文。关系映射由RestKit库处理。CoreDataEntity类是NSManagedObject的子类,也是我们所有不同的核心数据对象类的父类(superclass)。它具有我们所有实体都继承的一些属性,例如deleted_at、entity_id以及所有样板获取和同步方法。我的问题是一些提取请求似乎在修改对象后返回不一致的结果。例如在删除对象后(将deleted_at设置为当前日期):[CoreD

objective-c - insertNewObjectForEntityForName 返回 nil

我一直在使用CoreData,因为它是为iOS发布的,但我无法弄清楚我的一个实体的insertNewObjectForEntityForName方法调用发生了什么。当调用该方法时,它只返回一个nil对象,并且不会抛出异常。代码如下:@try{self.observation=[NSEntityDescriptioninsertNewObjectForEntityForName:@"Observation"inManagedObjectContext:moc];NSLog(@"Noexceptiononinsert");}@catch(NSException*exception){NSL

objective-c - -[NSNotificationCenter postNotificationName :object:] Can I pass nil for object?

我可以为-[NSNotificationCenterpostNotificationName:object:]的对象参数传递nil因为观察者不关心发件人是谁,还是传递self更好对象参数,即使观察者不检查谁发送了通知? 最佳答案 传递nil不会造成任何伤害。能够知道是什么发送了通知真是太好了,即使当前的观察者不需要知道也不检查它。 关于objective-c--[NSNotificationCenterpostNotificationName:object:]CanIpassnilfor