我從我的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。
然而,如果我使用鬆1作爲參數,它失敗,錯誤
終止應用程序由於未捕獲的異常「NSInvalidArgumentException」,原因:「 - [S3ObjectSummary stringWithURLEncoding]:無法識別的選擇發送到實例0x175aef30
當我使用的NSLog,既鬆1和song2打印完全相同的字符串「說唱God.mp3」
爲什麼出錯?爲什麼我不能使用數組中的字符串?它具有完全相同的價值?
我愛你...... – user1161310