小编Ric*_*ble的帖子

从 SwiftUI.Font 转换为 UIFont

我有一个UIViewRepresentableUITextView我想UITextView使用FontSwiftUI 环境中的当前设置字体。我只需要一个简单的初始化,如:

UIFont(_ swiftUIFont: Font)
Run Code Online (Sandbox Code Playgroud)

但我找不到任何这样的东西。而且该Font类型似乎没有任何我可以用来尝试实现一个的信息。有人知道在两种字体表示之间进行转换的方法吗?

fonts uifont swiftui

28
推荐指数
3
解决办法
6677
查看次数

我可以使用开发人员证书进行存档,然后在提交期间使用分发证书重新签名吗?

根据我的理解,Xcode可以在App Store提交过程中从存档重新签名.ipa,使您可以使用Developer Provisioning Profile创建存档,然后使用Distribution配置文件对其进行签名.这是一篇解释我在说什么的帖子:http://oleb.net/blog/2011/06/code-signing-changes-in-xcode-4/

不幸的是,我无法让它发挥作用.当我使用开发人员配置文件创建存档时,然后尝试使用分发配置文件提交存档时,我收到以下错误:"应用程序验证码验证失败.签名无效,包含不允许的权利,或者未使用iPhone分发证书签名"

该应用程序不使用任何权利,也没有权利文件.错误是正确的"它没有使用iPhone分发证书签名",因为它最初是使用开发人员证书签名的,我试图使用分发证书对其进行签名.我认为这是一件有效的事情......

xcode code-signing provisioning ios

13
推荐指数
1
解决办法
7688
查看次数

为属性设置相同的值仍然会调用willSet和didSet吗?

如果我将属性值设置为与当前设置的值相同的值,是否会调用willSet和didSet?了解何时在这些功能中发生副作用非常重要.

swift

11
推荐指数
2
解决办法
2930
查看次数

使用iOS"受保护的除非打开"加密关闭文件会发生什么?

Apple的文档说明如下:

保护除非打开.文件已加密.设备锁定时无法访问已关闭的文件.设备解锁后,您的应用可以打开并使用该文件.如果用户打开了文件并锁定了设备(例如,通过按下睡眠按钮),您的应用程序可以继续访问该文件.

启用商店技术

并且:

完成除非已经打开.该文件已加密.设备锁定时无法访问已关闭的文件.用户解锁设备后,您的应用可以打开文件并使用它.但是,如果用户在文件打开时锁定设备,您的应用可以继续访问它.指定NSDataWritingFileProtectionCompleteUnlessOpen选项(NSData)或NSFileProtectionCompleteUnlessOpen属性(NSFileManager).

使用磁盘加密保护数据

这似乎是一个很好的选择,允许我完成文件上的任何剩余工作,然后自己关闭它.文档没有说明文件关闭时会发生什么.例如,当:

  1. 用户打开应用程序并打开app中的文件
  2. 用户锁定设备(文件因未打开而保持不受保护)
  3. App会对文件执行剩余操作
  4. 应用程序关闭文件

现在,文件是否受保护,因为它现在已关闭?或者可以重新开放吗?

security ios

6
推荐指数
1
解决办法
2002
查看次数

如何在Swift中解包数组元素?(即Array <Int?> as Array <Int>)

让我说我有一个字符串数组,我想将它映射到一个Int数组我可以使用map函数:

var arrayOfStrings: Array = ["0", "a"]
let numbersOptional = arrayOfStrings.map { $0.toInt() }
// numbersOptional = "[Optional(0), nil]"
Run Code Online (Sandbox Code Playgroud)

Numbers现在是一个Int?数组,但我想要一个Int数组.我知道我可以这样做:

let numbers = arrayOfStrings.map { $0.toInt() }.filter { $0 != nil }.map { $0! }
// numbers = [0]
Run Code Online (Sandbox Code Playgroud)

但这似乎并不是很迅速.从Int数组转换?对于Array of Int,需要使用相当多的样板函数来调用filter和map.有更快捷的方法吗?

ios swift

6
推荐指数
3
解决办法
2672
查看次数

如何在运行时确定CloudKit环境?

是否有一种编程方式来发现我的应用是否与CloudKit开发或生产环境进行通信?

(我知道我可以查看com.apple.developer.icloud-container-environmentEntitlements.plist 中的键来进行智能猜测,但这并不能真正证明 - 我正在使用哪种环境.)

ios cloudkit cloudkit-environments

6
推荐指数
2
解决办法
294
查看次数

如何使用应用程序组与多个应用程序(不仅仅是扩展程序)共享核心数据,并避免损坏的核心数据存储?

我创建了一个iOS 8应用程序,它使用新的应用程序组功能与扩展共享Core Data存储.它工作得很好,以为我会尝试使用2个独立的应用程序在App Group容器中共享Core Data存储.但是当它在App和Extension之间起作用时,我在与2个应用程序共享时遇到了Core Data存储损坏问题.

根据我打开2个应用程序的顺序,我会得到不同的错误:

Fetches导致此错误:

CoreData:错误:(522)/private/var/mobile/Containers/Shared/AppGroup/[...].sqlite中数据库的I/O错误.SQLite错误代码:522,'不是错误'

保存导致此错误:

CoreData:错误:(11)致命错误./private/var/mobile/Containers/Shared/AppGroup/[...].sqlite中的数据库已损坏.SQLite错误代码:11,'数据库磁盘映像格式错误'

要么:

核心数据:错误:-executeRequest:在SQL执行期间遇到异常=错误:PRIMARY KEY必须与userInfo = {NSFilePath ="/private/var/mobile/Containers/Shared/AppGroup/[...].sqlite"; NSSQLiteErrorDomain = 19; } CoreData:错误:(19)PRIMARY KEY必须是唯一的

core-data ios ios-app-group

5
推荐指数
1
解决办法
845
查看次数

我应该将 .swiftpm 添加到 gitignore 吗?

在 Xcode 中编辑 Swift 包时会创建一个 .swiftpm 目录。我应该通过添加到我的 .gitignore 来忽略这个目录吗?

xcode swift swift-package-manager

5
推荐指数
1
解决办法
1090
查看次数

NSLayoutManager 每段有一个 NSTextContainer

如何制作一个 NSLayoutManager 将其文本中的每个段落分配给不同的 NSTextContainer?

这类似于 TextKit 中常见的多页/多列用法,但每个页面对应不同长度的不同段落。

ios ios7 textkit

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

Objective C cast(id)vs cast作为显式类

通常在目标C中,您知道对象是一种特定的类,因此您将其强制转换为该类以继续使用它:

NSObject *object;
NSString *string = (NSString *)object;
Run Code Online (Sandbox Code Playgroud)

但是,这已经困扰了我一段时间 - 在该演员阵容中写出"NSString*"与短片(id)相比有什么好处:

NSObject *object;
NSString *string = (id)object;
Run Code Online (Sandbox Code Playgroud)

我通常喜欢详细的Objective-C,因为该语言是为了可读性而设计的,但在这种情况下我无法弄清楚任何冗长的优点.

objective-c

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