2012-07-30 72 views
0

嗨,我在这里得到了一组代码,它比较了图片的网址。这是来自图书馆。一个多重图像挑选器, 我知道在这些代码中,其他的urls是选取的图像,而selfUrls是光库/相机胶卷包含的图像。比较图片网址

有人可以帮助我,使这个快捷方式,不与每个单一的URL比较,只是跳到它,或快速比较。希望有人能帮助我。当它与所有selfUrls相比时,它会崩溃。由于太多的图片。

- (BOOL)isEqual:(id)other 
{ 
    if (other == self) 
    return YES; 
    if (!other || ![other isKindOfClass:[self class]]) 
    return NO; 

    ALAsset *otherAsset = (ALAsset *)other; 
    NSDictionary *selfUrls = [self valueForProperty:ALAssetPropertyURLs]; 
    NSDictionary *otherUrls = [otherAsset valueForProperty:ALAssetPropertyURLs]; 
    return [selfUrls isEqualToDictionary:otherUrls]; 
} 
+0

你到底在问什么?我不理解“不要比较每一个网址,只是跳到它,或快速比较”?你想要做什么,以及“快捷方式”是什么意思? – Rengers 2012-07-30 15:51:38

+0

otherURLs与所有selfUrls比较。所以例如我有2000张图片,它会将其与所有图片进行比较。这就是为什么我的应用程序崩溃,我不知道如何制作更短的版本。或快捷版本,将跳过比较短的方式。或者只是添加一个索引。希望你能帮上忙。 thankyou – 2012-07-31 00:15:20

+0

好吧,正如cory所说,我认为没有比较两个NSDictionary的“捷径”。当然,除了做指针方程,但这可能不适用于你的情况。但我也不认为这是你的应用程序崩溃的原因。 – Rengers 2012-07-31 21:48:21

回答

0

从我的理解你的问题,这是相当简单的。我不会为你写出确切的代码,但会给你一些指示。

首先,我们需要找到相机胶卷URL的格式(因此我们知道哪些要跳过)。

所以要做到这一点创建一个简单的电话启动相机胶卷。它将有一个我们将使用的代理方法didFinishPickingMediaWithInfo。它返回与您选择的图像相关的信息。我们可以很容易地拉取图片的网址。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ 
    [self dismissModalViewControllerAnimated:YES]; 

    //Get the image url 
    NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL]; 

    //Convert url to string 
    NSString *urlString = [url absoluteString]; 

    //Print it out 
    NSLog(@"Our string format = %@", urlString); 
} 

现在我们知道摄像头滚动URL的格式了。你可以做的就是看看并说:“好吧,从相机胶卷拉出的每个URL的前10个字符是相同的”。当您循环检查您的URL时,请检查前10个字符。如果它们与相机胶卷格式不同,那么您从相机胶卷(满口)知道其而不是

希望这会有所帮助。

+0

我已经有了didFinishpickingmedia,但其他的URL正在和所有的selfUrls进行比较。所以例如我有2000张图片,它会将其与所有图片进行比较。这就是为什么我的应用程序崩溃,我不知道如何制作更短的版本。或快捷版本,将跳过比较短的方式。或者只是添加一个索引。希望你能帮上忙。谢谢你 – 2012-07-31 00:16:14

+0

所以你有一个2000图像网址的数组。正确?你需要搜索它们吗?正确?我不相信有任何“捷径”不能全面搜索。 – random 2012-07-31 20:51:53