CocoaPods trunk is moving to be read-only. Read more on the blog, there are 15 months to go.

EXTestUtils 1.0.1

EXTestUtils 1.0.1

Maintained by liaohengjie.



  • By
  • Your Name

test

一个包含多个实用工具类的 Swift 库,提供了常用的功能模块,包括字符串处理、日期工具、网络工具、文件操作等实用功能。

功能特性

  • 字符串工具类 (StringUtils): 提供字符串验证、格式化、截取等功能
  • 日期工具类 (DateUtils): 提供时间戳转换、日期计算、相对时间等功能
  • 文件工具类 (FileUtils): 提供文件操作、目录管理、文件信息获取等功能
  • 网络工具类 (NetworkUtils): 提供网络状态监控、网络请求、设备IP获取等功能
  • 设备工具类 (DeviceUtils): 提供设备信息获取、系统信息、硬件信息等功能

安装

CocoaPods

在您的 Podfile 中添加:

pod 'test', '~> 1.0.0'

然后运行:

pod install

Swift Package Manager

在 Xcode 中,选择 File > Add Package Dependencies,然后输入:

https://github.com/yourusername/test.git

使用方法

字符串工具类

import test

// 检查字符串是否为空
let isEmpty = StringUtils.isEmpty("  ") // true

// 验证邮箱格式
let isValidEmail = StringUtils.isValidEmail("[email protected]") // true

// 验证手机号格式
let isValidPhone = StringUtils.isValidPhoneNumber("13800138000") // true

// 首字母大写
let capitalized = StringUtils.capitalizeFirstLetter("hello world") // "Hello world"

// 生成随机字符串
let randomString = StringUtils.randomString(length: 10)

// 截取字符串
let truncated = StringUtils.truncate("这是一个很长的字符串", to: 8) // "这是一个..."

日期工具类

import test

// 获取当前时间戳
let timestamp = DateUtils.currentTimestamp()

// 时间戳转字符串
let dateString = DateUtils.timestampToString(timestamp, format: "yyyy-MM-dd HH:mm:ss")

// 字符串转时间戳
let timestamp2 = DateUtils.stringToTimestamp("2023-12-01 10:30:00")

// 计算天数差
let days = DateUtils.daysBetween(from: Date(), to: Date().addingTimeInterval(86400))

// 检查是否为今天
let isToday = DateUtils.isToday(Date())

// 获取相对时间描述
let relativeTime = DateUtils.relativeTimeDescription(for: Date().addingTimeInterval(-3600)) // "1小时前"

文件工具类

import test

// 获取文档目录
let documentsPath = FileUtils.documentsDirectory()

// 检查文件是否存在
let exists = FileUtils.fileExists(at: "/path/to/file.txt")

// 创建目录
let created = FileUtils.createDirectory(at: "/path/to/new/directory")

// 获取文件大小
let size = FileUtils.fileSize(at: "/path/to/file.txt")
let formattedSize = FileUtils.formattedFileSize(size) // "1.2 MB"

// 复制文件
let copied = FileUtils.copyFile(from: "/source/file.txt", to: "/destination/file.txt")

// 获取目录下的所有文件
let files = FileUtils.filesInDirectory(at: "/path/to/directory")

网络工具类

import test

// 开始网络监控
NetworkUtils.startNetworkMonitoring()

// 检查网络状态
let isAvailable = NetworkUtils.isNetworkAvailable()
let isWiFi = NetworkUtils.isWiFiConnected()
let isCellular = NetworkUtils.isCellularConnected()

// 获取网络状态描述
let statusDescription = NetworkUtils.getNetworkStatusDescription()

// 获取设备IP地址
let ipAddress = NetworkUtils.getDeviceIPAddress()

// 简单的网络请求
NetworkUtils.simpleRequest(url: URL(string: "https://api.example.com")!) { data, error in
    if let data = data {
        print("请求成功: \(data)")
    } else if let error = error {
        print("请求失败: \(error)")
    }
}

// 停止网络监控
NetworkUtils.stopNetworkMonitoring()

设备工具类

import test

// 获取设备信息
let deviceModel = DeviceUtils.deviceModel()
let deviceName = DeviceUtils.deviceName()
let systemVersion = DeviceUtils.systemVersion()

// 获取应用信息
let appVersion = DeviceUtils.appVersion()
let appBuildVersion = DeviceUtils.appBuildVersion()
let bundleId = DeviceUtils.appBundleIdentifier()

// 检查设备类型
let isiPhone = DeviceUtils.isiPhone()
let isiPad = DeviceUtils.isiPad()
let isSimulator = DeviceUtils.isSimulator()

// 获取屏幕信息
let screenSize = DeviceUtils.screenSize()
let screenWidth = DeviceUtils.screenWidth()
let screenHeight = DeviceUtils.screenHeight()

// 获取内存信息
let totalMemory = DeviceUtils.totalMemorySize()
let availableMemory = DeviceUtils.availableMemorySize()

// 获取磁盘信息
let totalDisk = DeviceUtils.totalDiskSpace()
let availableDisk = DeviceUtils.availableDiskSpace()

// 获取设备信息摘要
let deviceInfo = DeviceUtils.deviceInfoSummary()

系统要求

  • iOS 12.0+
  • Swift 5.0+
  • Xcode 12.0+

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

贡献

欢迎提交 Issue 和 Pull Request!

更新日志

1.0.0

  • 初始版本发布
  • 包含字符串、日期、文件、网络、设备五个工具类
  • 提供完整的文档和使用示例