ios - iOS 是否提供了获取设备特定后缀字符串的函数?

标签 ios

在 iOS 上有一个很好的功能,应用程序开发人员可以通过在资源或 key 的基本名称上附加设备特定的后缀来在 Info.plist 中指定设备特定的资源或 key 。目前我们有 ~ipad~iphone

我想对我的应用程序的某些注册域用户默认值使用相同的系统,这些默认值在不同的设备上应具有不同的值。你知道 iOS 中有一个函数或方法可以调用来获取当前设备后缀吗?虽然自己编写代码很简单,但我更喜欢尽可能使用系统 API。

我并不关心系统是否给我 ~ipad~iphone,每个设备的字符串只需是唯一的。我也更喜欢人类可读的东西,这就是为什么我不热衷于使用 UIDevice.userInterfaceIdiom (这只是一个数字)。我还查看了 UIDevice.model 但我不确定这是否合适。

最佳答案

以防万一没有肯定的答案,这就是我对所需功能的实现:

// NSStringAdditions.h
@interface NSString(NSStringAdditions)
- (NSString*) stringByAppendingDeviceSuffix;
@end


// NSStringAdditions.m
- (NSString*) stringByAppendingDeviceSuffix
{
  static NSString* deviceSuffix = nil;
  if (! deviceSuffix)
  {
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
      deviceSuffix = @"~iphone";
    else
      deviceSuffix = @"~ipad";
  }
  return [self stringByAppendingString:deviceSuffix];
}

关于ios - iOS 是否提供了获取设备特定后缀字符串的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9449261/

相关文章:

ios - UISlider setThumbImage,拇指图像在 iOS7 上显示不正确

ios - Swift 中的选择器 View

ios - 除了使用 MPMoviePlayerController 播放直播视频

ios - 仪器的程序控制(或注释)?

ios - 当SwiftUI中观察到的对象发生变化时如何禁用列表中的动画?

ios - 仅在通知出现后触发操作(swift3)

ios - 如何将多个视频采集到一个视频中(视频拼贴)iOS

ios - UIStackView 内的 UISegmentedControl,分段文本不居中 - iOS 13

php - 如何运行 php 脚本来发送推送通知

ios - Objective-C 中的变量声明——接口(interface)与实现