小编cle*_*bit的帖子

Swift:如何使用PREPROCESSOR Flags(如`#if DEBUG`)来实现API密钥?

Objective-C它是使用静态字符串常量来定义备用API键(例如发布和调试键之间进行区分用于分析套件,像MixPanel,乱舞或Crashlytics)有时是有用的:

#if DEBUG
static NSString *const API_KEY = @"KEY_A";
#else
static NSString *const API_KEY = @"KEY_B";
#endif
Run Code Online (Sandbox Code Playgroud)

然后...

[Analytics startSession:API_KEY];
Run Code Online (Sandbox Code Playgroud)

这是如何转换为Swift的,因为Swift编译器不再使用预处理器?

macros xcode preprocessor swift

67
推荐指数
4
解决办法
5万
查看次数

在iOS中请求相机权限对话启动(Prime权限)

提示用户提供对相机(或其他功能)的访问权限,同时确保获得最佳体验的最有效方法是什么?

访问摄像头时,iOS必须要求客户允许访问.众所周知,如果客户说"不"但随后改变主意,则无法在您的应用程序中撤销此决定.他们必须转到"设置"并按照许多步骤重新启用访问权限,即:

Settings -> Privacy -> Camera -> [Your App] -> turn switch on

permissions camera user-experience ios swift

12
推荐指数
1
解决办法
1万
查看次数

Swift 3:无法使用NSFetchedResultsController推断复杂的闭包类型

将项目升级到Swift 3后,以下初始化程序不再构建:

1    var fetchedResultsController: NSFetchedResultsController {
2        if _fetchedResultsController != nil {
3            return _fetchedResultsController!
4        }
5        
6        let fetchRequest: NSFetchRequest = MyEntity.fetchRequest()
...
Run Code Online (Sandbox Code Playgroud)

错误发生在第1行:

"Unable to infer complex closure return type; add explicit type to disambiguate"
Run Code Online (Sandbox Code Playgroud)

第6行给出了进一步的错误:

"Generic parameter 'MyEntity' could not be inferred"
Run Code Online (Sandbox Code Playgroud)

migration nsfetchedresultscontroller swift3 ios10 xcode8

9
推荐指数
1
解决办法
5548
查看次数

迅速:提出主要和替代(登录/入职)流程时出现视觉故障?

我有一个应用程序,要求该人在首次启动该应用程序时登录或创建帐户。(尽管通常不建议这样做,但这是一个非常特定的用例。)

此外,如果他们已经登录,则在更新应用程序时,我想向他们显示一个屏幕,告诉他们新功能(如iOS12中的Notes,Photos和Music)。

我遇到的问题是在AppDelegate中更改“ window”的“ rootViewController”时,应用程序出现故障,并且在入职视图控制器变得可见之前,我可以瞬间看到主视图控制器。

有办法避免这种情况吗?可以将此逻辑封装在ViewController或AppDelegate中吗?

在不依赖多个实现的情况下,是否有一种我可以用于这些场景中的一个或多个的单一机制?

user-experience storyboard appdelegate swift

3
推荐指数
1
解决办法
875
查看次数

在iOS中如何在Swift中的Number Pad上面添加一行?

默认情况下,如果将UITextField键盘类型设置Number Pad为显示键盘类型,则顶部键(iOS10)上方没有keyline.有没有简单的方法来解决这个问题?

在此输入图像描述

keyboard user-interface ios numpad swift3

2
推荐指数
1
解决办法
401
查看次数

SwiftUI:如何调整大小以适合按钮以展开以填充VStack或HStack父视图?

我正在尝试创建2个等宽的按钮,两个按钮垂直放置。它看起来应该像这样:

两个等宽按钮垂直放置,它们之间有间隔

我将2放置ButtonsVStack其中,它会自动扩展到较大按钮的宽度。我正在尝试做的是将按钮的宽度扩展为,以填充的宽度VStack,但这是我得到的:

VStack自动调整大小到最大按钮

VStack(alignment: .center, spacing: 20) {

    NavigationLink(destination: CustomView()) {
        Text("Button")
    }.frame(height: 44)
        .background(Color.primary)

    Button(action: { self.isShowingAlert = true }) {
        Text("Another Button")
    }.frame(height: 44)
        .background(Color.primary)

}.background(Color.secondary)
Run Code Online (Sandbox Code Playgroud)

设置宽度将其VStack展开,但是按钮无法展开以适合:

VStack(alignment: .center, spacing: 20) {
    ...
}.frame(width: 320)
    .background(Color.secondary)
Run Code Online (Sandbox Code Playgroud)

VStack宽度扩大,但按钮不扩大

所以我的问题是:

除了手动设置布局中每个项目的框架外,还有其他方法吗?

我宁愿不必指定每一个,因为这将变得难以管理。

user-interface ios swift swiftui

1
推荐指数
3
解决办法
959
查看次数

什么是UISwitch的明确变量名称,因为"switch"是保留关键字?

Xcode不会让我命名我的IBOutlet"switch",因为它是一个保留的关键字:

@IBOutlet weak var switch: UISwitch!
Run Code Online (Sandbox Code Playgroud)

xcode uikit ios swift

0
推荐指数
1
解决办法
211
查看次数