你可以用自己的版本,返回版本冲突的数组补丁+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 ] ;
似乎没有公开的方式。我现在已经提交了一个雷达:[rdar:// 12196293](http://openradar.appspot.com/12196293)。任何*黑客建议*仍将不胜感激。 –