2012-07-30 93 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