首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动创建冲突的NSFileVersions

自动创建冲突的NSFileVersions
EN

Stack Overflow用户
提问于 2012-08-26 19:32:40
回答 1查看 337关注 0票数 6

我已经编写了一个自定义冲突处理例程,它可以自动启动以解决NSFileVersion的冲突版本。现在,我想编写单元测试,以确保它的工作。以下是一个问题:

如何在单元测试中导致/创建冲突版本?

这一点本质上归结为:我如何在不通过iCloud手动进行冲突的情况下引发冲突?因为这只是为了测试目的,所以我不介意使用私有API或直接侵入系统--只要结果是NSFileVersion's +unresolvedConflictVersionsOfItemAtURL报告的冲突。任何建议都将不胜感激!

最大值

EN

回答 1

Stack Overflow用户

发布于 2012-09-03 21:46:14

您可以使用自己的版本修补+unresolvedConflictVersionsOfItemAtURL,该版本返回一系列相互冲突的版本:

代码语言:javascript
复制
#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

够继续下去了吗?我可能首先在我的替代“方法”中尝试这个方法:

代码语言:javascript
复制
return [ [ self otherVersionsOfItemAtURL:url ] lastObject ] ;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12133242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档