iOS PHAssetCollection localizedTitle始终返回英文名称

时间:2017-03-03 12:59:57

标签: ios objective-c iphone photosframework phassetcollection

我正在使用Apples Photos Framework将PHAssetCollections加载到我的应用中。 我总是得到智能收藏的英文名称。例如,我得到'收藏'而不是'收藏家'(瑞典语)。我认为localizedTitle属性将返回模拟器或iPhone运行的语言。 (在具有瑞典语和地区的iPhone上运行)。

还有其他人遇到过这个吗? 示例代码:

NSArray *collectionsFetchResults;
NSMutableArray *localizedTitles = [[NSMutableArray alloc] init];

PHFetchResult *smartAlbums = [PHAssetCollection       fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
                                                                            subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
PHFetchResult *syncedAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum
                                                                       subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:nil];
PHFetchResult *userCollections = [PHCollectionList fetchTopLevelUserCollectionsWithOptions:nil];

// Add each PHFetchResult to the array
collectionsFetchResults = @[smartAlbums, userCollections, syncedAlbums];

for (int i = 0; i < collectionsFetchResults.count; i ++) {

    PHFetchResult *fetchResult = collectionsFetchResults[i];

    for (int x = 0; x < fetchResult.count; x ++) {

        PHCollection *collection = fetchResult[x];
        localizedTitles[x] = collection.localizedTitle;
        NSLog(@"%@", collection.localizedTitle); //<= Always prints english names
    }
}

4 个答案:

答案 0 :(得分:4)

collection.localizedTitle无法返回任何其他语言的原因,因为您的应用只有一个English的本地化版本。这绝对是一个Apple Bug,但这是一个黑客按照这些步骤。

  1. 除了您已有的sv.lproj文件夹之外,创建相关文件夹en.lproj
  2. 在文件夹中添加空白文本文件,然后将该文件添加到项目中。
  3. 执行第2步。您正在为项目添加瑞典语支持。
  4. 运行您的代码,它应返回瑞典文标题。
  5. <强>更新

    如果您想在添加空白文本后轻松添加更多语言,可以通过选择项目添加其他答案中显示的内容,并在“本地化”部分添加语言并再次选择空白文件,因为我们不想本地化其他文件。

    希望它有所帮助,如果怀疑在这里问。

    干杯。

答案 1 :(得分:2)

我认为您应该确保您的应用支持瑞典语。 例如,添加您要支持瑞典语的语言 add Swedish language

答案 2 :(得分:0)

您的问题可能是您的所有提取都没有显式或隐式返回内置的收藏夹智能相册。 (此外,它有助于诊断,使您的代码只能检查一次获取的结果,因此您可以找出哪一个包含非本地化&#34;收藏夹&#34;。)

如果您明确需要收藏夹集合,请使用PHAssetCollectionSubtypeSmartAlbumFavorites集合子类型进行搜索。 (它不应该是搜索常规专辑或同步专辑的结果,我会惊讶地发现它在顶级用户集合中,因为它被记录为只返回用户创建的集合。 )

如果显式请求收藏夹智能相册返回非本地化版本,或者您的其他任何一个提取正在返回收藏夹智能相册并且它不是本地化,则可能是Apple错误 - 我推荐telling them about it

答案 3 :(得分:-1)

ProJect - &gt;本地化 - &gt; “+中文(简体)”enter image description here