Я вытаскиваю массив имен песен с моего сервера AWS.NSString не работает как параметр, но буквальная строка работает?
Следующим шагом будет использование одного из этих имен песен в качестве параметра в запросе на получение его потокового URL.
//[1] Initialize the S3 Client.
self.s3 = [[AmazonS3Client alloc] initWithAccessKey:@"blah" withSecretKey:@"blah"];
self.s3.endpoint = [AmazonEndpoints s3Endpoint:US_WEST_2];
//[2] Get an array of song names
NSArray *song_array = [self.s3 listObjectsInBucket:@"blahblah"];
NSLog(@"the objects are %@", song_array);
//[3] Get a single song name from the array
NSString *song1 = [[NSString alloc] init];
song1 = (NSString *)[song_array objectAtIndex:1];
NSLog(@"%@", song1);
NSString * song2 = @"Rap God.mp3";
NSLog(@"%@", song2);
//[4] Get the Song URL
S3GetPreSignedURLRequest *gpsur = [[S3GetPreSignedURLRequest alloc] init];
gpsur.key = song2;
gpsur.bucket [email protected]"soundshark";
gpsur.expires = [NSDate dateWithTimeIntervalSinceNow:(NSTimeInterval) 3600];
NSError *error;
NSURL *url = [self.s3 getPreSignedURL:gpsur error:&error];
NSLog(@"the url is %@", url);
Song2 отлично работает как параметр gpsur.key.
Однако, если я использую SONG1 в качестве параметра, он терпит неудачу с ошибкой
согласующего приложением из-за неперехваченное исключение «NSInvalidArgumentException», причина: «- [S3ObjectSummary stringWithURLEncoding]: непризнанный селектор направлен например 0x175aef30
Когда я использую NSLog, как SONG1 и song2 печатать точно такую же строку "Rap God.mp3"
Почему ошибка? Почему я не могу просто использовать строку из массива? Он имеет то же значение?
Я люблю тебя ...... – user1161310