12K+ 次浏览
要在 Swift 中向日期添加一天,我们需要首先创建一个日期。创建日期后,我们必须向其添加特定天数。在这个例子中,我们将看到如何实现这一点。让我们首先创建一个日期,设为今天,let today = Date()现在,为了修改这个日期,我们将使用带有负值的 add 函数,let modifiedDate = Calendar.current.date(byAdding: .day, value: 1, to: today)!现在,为了查看这两个日期之间的差异,让我们为这两个日期添加 print 语句。我们完整的代码现在应该如下所示。let today = Date() print(today) ... 阅读更多
2K+ 次浏览
要在 Swift 中从 URL 下载视频,我们需要执行几个步骤,同时记住一些事项。需要注意的是,我们将使用互联网下载视频,因此我们需要在我们的 Info.plist 中允许应用传输安全权限。我们需要将下载的视频保存到照片应用,因此需要照片权限。视频应始终在后台下载,因为如果在前景下载可能会阻止我们使用该应用。现在,我们将使用以下代码将视频从随机链接保存到我们的设备中。您将 ... 阅读更多
714 次浏览
要在 Swift 中向我们的默认 UIView 添加实时相机预览,我们可以使用 iOS SDK 的 AVFoundation 框架或原生的 UIImagePickerController()。在这个例子中,我们将使用 ImagePicker,因为我们的目标是在 UIView 上显示相机预览,而 ImagePicker 适用于此任务。当我们需要对我们的相机进行大量自定义或不同的自定义操作时,可以使用 AVFoundation。要在 UIView 上显示相机预览,我们需要执行以下步骤。创建一个 UIImagePickerController 对象。使我们的类符合 UIImagePickerControllerDelegate 和 UINavigationControllerDelegate。将委托分配给我们在上一步中创建的对象 ... 阅读更多
335 次浏览
比特码 – 比特码是代码外观的中间表示。我们不能使用这段代码,也不能将其安装在设备上。当我们将应用程序上传到应用商店时,它将作为比特码上传,稍后由 iTunes/Apple 转换为应用程序二进制文件。当创建中间代码并上传到应用商店或在设备上运行时,名为 LLMV 的程序将接管控制并将中间代码转换为二进制文件,该文件对于模拟器为 x86 32 位或 x86 64 位,对于实际的 iOS 手持设备为 ARM ... 阅读更多
190 次浏览
处理符号文件是在我们创建项目的构建时在 Xcode 上显示的消息。当此消息出现时,Xcode 在后台下载特定设备和特定处理器(将在其上安装构建)的文件和符号文件。符号文件包含调试符号,这些符号用于在特定处理器和 iOS 版本上进行调试,当发生某些崩溃或错误时,这些符号用于创建崩溃报告。处理完符号后,将在库中创建一个包含设备符号的新文件夹,通常位于“~/Library/Developer/Xcode/iOS DeviceSupport/”下。有时我们的系统可能会在此步骤上卡住 ... 阅读更多
171 次浏览
当我们构建 iOS 应用程序时,默认情况下它会获得版本 1.0 和构建 0。每当我们将新的构建上传到应用商店时,都需要更改版本号。我们可以更新测试构建的构建号。版本和构建号存储在项目中的 info.plist 文件中。有时我们可能需要在我们的应用程序中访问构建或版本号以执行某些自定义操作。要获取版本号,我们可以使用以下代码并将其分配给变量或常量。Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String要获取构建号 ... 阅读更多
要使用 iOS/Swift 检测当前设备,我们可以使用 UserInterfaceIdiom。它是 Swift 中的一个枚举,它告诉我们正在使用哪个设备。接口习惯在其枚举中提供了多个值,它们是:case unspecified @available(iOS 3.2, *) case phone // iPhone 和 iPod touch 风格的 UI @available(iOS 3.2, *) case pad // iPad 风格的 UI @available(iOS 9.0, *) case tv // Apple TV 风格的 UI @available(iOS 9.0, *) case carPlay // CarPlay 风格的 UI在 Swift 中,interfaceIdiom 可以如下使用:print(UIDevice.current.userInterfaceIdiom) if UIDevice.current.userInterfaceIdiom == .phone { print("在 iPhone 上运行") }当我们运行上述代码时 ... 阅读更多
5K+ 次浏览
要在 iOS 中在一个视图控制器和另一个视图控制器之间导航,我们需要使用导航控制器。导航控制器管理视图控制器堆栈,当我们从一个视图转到另一个视图时。在一个视图控制器和另一个视图控制器之间导航可以像下面提到的那样完成。步骤 1 - 创建一个视图控制器对象。let vc = self.storyboard?.instantiateViewController(withIdentifier: "VC2ViewController") as! VC2ViewController在此步骤中,我们初始化我们想要导航到的另一个视图控制器的类型的对象。标识符变量应与我们的第二个视图控制器的标识符相同。步骤 2 - 导航到 ... 阅读更多
3K+ 次浏览
要检查 Swift 中的字符串是否包含特殊字符,我们可以使用 if else 或 switch 等条件语句,但这需要执行许多条件,从而使编程和执行时间消耗增加。因此,在这个例子中,我们将看到如何使用正则表达式以及 Swift 提供的另一种方法来检查字符集中是否存在某些字符。方法 1 - 使用正则表达式让我们创建一个 String 的扩展,并将以下代码添加到其中extension String { var containsSpecialCharacter: Bool { let regex = ... 阅读更多
1K+ 次浏览
在Swift语言中验证邮箱和电话号码可以使用多个条件语句,例如if语句,但这过程冗长,可能需要50到100个if语句来验证邮箱。因此,我们将使用正则表达式代替条件语句。Swift提供了NSPredicates,我们可以用它来评估正则表达式并进行测试。让我们看看如何使用正则表达式来实现相同的功能。我们将创建一个函数,可以将其用作String类或UIViewController的扩展,以便在整个项目中使用。将以下代码添加到项目中的任何类中,或创建一个单独的Swift类……阅读更多