cocoa – 自动创建冲突的NSFileVersions

cocoa – 自动创建冲突的NSFileVersions,第1张

概述我编写了一个自定义冲突处理例程,自动启动以解决NSFileVersion的冲突版本.现在我想编写单元测试以确保它有效.这是一个问题: How do I cause/create conflicting versions within a unit test? 这个基本原理归结为:如何在不通过iCloud手动完成冲突的情况下引发冲突?由于这仅用于测试目的,我不关心使用私有API或直接入侵系统 – 只 @H_502_0@ @H_502_0@ 我编写了一个自定义冲突处理例程,自动启动以解决NSFiLeversion的冲突版本.现在我想编写单元测试以确保它有效.这是一个问题:

How do I cause/create conflicting versions within a unit test?

这个基本原理归结为:如何在不通过iCloud手动完成冲突的情况下引发冲突?由于这仅用于测试目的,我不关心使用私有API或直接入侵系统 – 只要结果是NSFiLeversion的unresolvedConflictVersionsOfItemAtURL报告的冲突.任何建议都将受到高度赞赏!

马克斯

解决方法 您可以使用自己的版本修补unresolvedConflictVersionsOfItemAtURL,该版本返回一系列冲突版本:

#import <objc/runtime.h>static IMP __originalUnresolvedConflictVersionIMP = NulL ;static NSArray * MyNSFiLeversionUnresolvedConflictVersions( ID self,SEL _cmd,NSURL * url ){    // this code just calls the original implementation...     // You can return an array of conflicting NSFiLeversion objects instead...    NSLog(@"%s called\n",__PRETTY_FUNCTION__ ) ;    return (*__originalUnresolvedConflictVersionIMP)( self,_cmd,url ) ;}@implementation NSFiLeversion (Test)+(voID)load{    __originalUnresolvedConflictVersionIMP = class_replaceMethod( objc_getMetaClass( "NSFiLeversion"),@selector( unresolvedConflictVersionsOfItemAtURL: ),(IMP)MyNSFiLeversionUnresolvedConflictVersions,"@@:@" ) ;}@end

这还够继续吗?我可能会先用我的替代“方法”尝试这个:

return [ [ self otherVersionsOfItemAtURL:url ] lastObject ] ;
@H_502_0@ 总结

以上是内存溢出为你收集整理的cocoa – 自动创建冲突的NSFileVersions全部内容,希望文章能够帮你解决cocoa – 自动创建冲突的NSFileVersions所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1016406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存