0

こんにちは、画像の URL を比較する一連のコードを取得しました。これは図書館からでした。複数の画像ピッカー、これらのコードでは、otherUrls が選択された画像であり、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];
}
4

1 に答える 1

0

あなたの質問について私が理解していることから、これはかなり単純です。あなたがそれを行うための正確なコードは書きませんが、いくつかの指針を示します。

まず、カメラ ロールの URL の形式がどのようなものかを確認する必要があります (これにより、どれをスキップするかがわかります)。

これを行うには、カメラ ロールを起動するための簡単な呼び出しを作成します。これには、使用するデリゲート メソッドがありdidFinishPickingMediaWithInfoます。選択した画像に関連する情報を返します。画像の URL を簡単に取得できます。

-(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 の形式がわかりました。あなたが知ることができるのは、「OK、カメラロールから引き出された各 URL の最初の 10 文字は同じです」と言うだけです。URL の確認をループするときは、最初の 10 文字を確認してください。それらがカメラ ロール形式と異なる場合は、カメラ ロールからのものではないことがわかります(一口)。

お役に立てれば。

于 2012-07-30T21:42:57.387 に答える