其实在之前的文章中我们就已经接触过一点这方面的知识,学习PHP中的国际化功能来查看货币及日期信息,今天就来详细的学习一遍。至于为什么要格式化数字、货币这些内容呢?我们将在文章讲解中逐一说明。...在这段代码中,我们使用了两种模式的输出。第一个是指定 NumberFormatter 的第二个参数为 CURRENCY ,也就是指定格式化为货币格式。...SCIENTIFIC 就是我们常见的科学计数法,测试代码中的结果就是 1.xx 的 10 的 6 次方的意思。 SPELLOUT 就比较厉害了,按当前区域语言的拼写规则。...当然,不仅限于这一个属性,还有很多别的可以修改的属性,大家可以自行查阅官方手册。 分隔符号设置 同样,我们可以直接修改格式化中的分隔符、小数点等使用的符号。...错误信息 最后我们来看看 NumberFormatter 中的错误信息如何获取。
学习PHP中的国际化功能来查看货币及日期信息 做为一门在世界范围内广泛使用的编程语言,国际化能力往往是衡量一个编程语言是否能够大范围流行的重要内容。...在 PHP 中,已经为我们准备好了很多国际化相关的扩展及函数库,今天我们先来简单的学习一下,后面在学习到具体的 国际化与字符编码支持 相关的函数库时再进行深入的讲解学习。...获取指定地区所在地的标准数字信息 对于我们中国人来,数字比较习惯的是百、千、万位,一般也不太需要区分,而西方国家则喜欢三位一个逗号的分隔开来,也就是对应他们的英文数字习惯,比如 10000,在西方表示中是...因此,在 PHP 中,也是有相对于这种情况的数字表示形式,也就是为普通数字加上逗号以表示西方数字标准格式。...获取指定地区所在地的货币符号信息 既然有数字格式的不同了,那么货币形式的区别就也是类似的形式了,只不过我们在使用 NumberFormatter 类的时候需要指定后面的数字类型常量为货币形式 NumberFormatter
"; // 零的样式 numberFormatter.zeroSymbol = @"-"; // 正前缀和后缀 numberFormatter.positivePrefix...; numberFormatter.positiveSuffix = @"元"; // 负前缀和后缀 numberFormatter.negativePrefix = @"@";...numberFormatter.negativeSuffix = @"钱"; // 整数最多位数 numberFormatter.maximumIntegerDigits =...= 3; // 小数位最少位数 numberFormatter.minimumFractionDigits = 1; // 数字分割的尺寸 numberFormatter.groupingSize...= 4; // 除了groupingSize决定的尺寸外,其他数字位分割的尺寸 numberFormatter.secondaryGroupingSize = 2;
关于提前适配iOS13 苹果推送DeviceToken的通知 随着苹果iOS13系统即将发布,个推提前推出DeviceToken适配方案,以确保新版本的兼容与APP推送服务的正常使用。...在Xcode11、iOS13运行时"[deviceToken description]",情况如下图所示: ?...在Xcode11、iOS12或Xcode10及以下版本运行时"[deviceToken description]",情况如下图所示: ?...适配方案(推荐):因老版个推推送SDK未适配Xcode11、iOS13变化,可以选择升级个推SDK版本至 “2.4.1.0”(docs.getui.com/getui/mobil…)。...DeviceToken的适配对iOS推送SDK的集成至关重要。请大家尽早选择相应的适配方案,以更好地兼容苹果新版本。如有任何问题,欢迎与我们进行联系。
Xcode11打包失敗IPA processing failed 原文地址 是因为项目中使用的SDK支持i386,x86_86這個架构,可能是iOS13不支持模拟器架构了,所以必须强制去除。...各種架構解釋: 模擬器32位處理器測試需要i386架構,(iphone5,iphone5s以下的模擬器) 模擬器64位處理器測試需要x86_64架構,(iphone6以上的模擬器) 真機32位處理器需要...(iphone6,iphone6p以上的真機) 解决 方法一: 使用低版本的Xcode打包,低于Xcode11就可以了。 方法二: 去除SDK中的i386、x86_86。这里只能一个个去排查。...我當前使用到了AliyunMediaDownloader.framework這個SDK,假設AliyunMediaDownloader.framework存放的目錄是: /Users/leo/Desktop...lipo -info AliyunMediaDownloader 可以看到AliyunMediaDownloader當前支持的架構: Architectures in the fat file: AliyunMediaDownloader
在iOS中,对数字的格式化操作,我第一个想到的就是它NumberFormatter,所以我写了下面这个函数 extension String { func numberRMM() -> String...{ guard let num = Double(self) else { return "" } let format = NumberFormatter...,再加上字符串替换,来实现我们的需求 首先全部字符串的替换如下函数 let formattedString = text.replacingOccurrences(of: "一", with: "壹"...&& isInt { return texts[0].appending("元整") } 如果是小数,此时无论有多少位小数,我们都需要保留两位小数,即角和分,后面的数字直接丢弃掉(实际业务中也不会出现有...{ guard let num = Double(self) else { return "" } let format = NumberFormatter
第一步、创建 .itmsp 其实就是一个文件夹 第二步、在.itmsp 中创建 *.metadata 文件 其实是一个 xml文件。...Ipa包的文件名,Ipa包的md5签名....名字要与xml中的名字对应 第四步、 上传 xcrun iTMSTransporter -m upload -u $USERNAME -p $PASSWORD -f ${IPAppath}/$itmspDir...在xcode11之后, 使用 altool 上传就不行了 可能是我 方式有问题 尝试了很多次始终 卡死状态。 ...所以以上我用的 xcrun 带的工具 Xcode 11 里面的 altool --upload-app -f ipa的存放路径 -t 平台(ios) -u 开发者账号 -p 开发者账号对应的密码 在xcode11
Xcode11之后新创建的工程会多出两个文件SceneDelegate.那么我们如何让它变回之前的那样的工程呢. 一....SceneDelegate.h/.m文件 2.在AppDelegate.h添加@property (strong, nonatomic) UIWindow * window;属性 3.在AppDelegate.m文件中移除...UIScene代理 * 移除之前 * 移除之后 4.最后在info.plist文件中移除Application Scene Manifest....Swift 版 1.先直接删除SceneDelegate.swift文件 2.修改AppDelegate.swift文件:注释或删除UISceneSession的生命周期函数,最终代码如下: 3.最后在...info.plist文件中移除Application Scene Manifest.
extension=intl是 PHP 的 国际化扩展(Internationalization extension),它是一个非常重要的扩展。让我详细解释: 一、intl 扩展是什么?...二、intl 扩展的主要功能: 1. 区域化(Locale)处理 不同地区的日期、时间格式 数字、货币格式化 排序规则(Collation) 2....数字和货币格式化 // 示例:货币格式化 $formatter = new NumberFormatter('zh_CN', NumberFormatter::CURRENCY); echo $formatter...排序和比较 支持语言敏感的字符串比较 支持多种语言的排序规则 三、为什么你的项目需要 intl?...PHPStudy 通常已经包含了 intl 扩展,你只需要取消注释即可: ;extension=intl 改为 extension=intl 2. intl 扩展文件位置: PHPStudy 中通常位于
IOS 使用Xcode上传IPA到AppStore,如果正常使用工程打包上传时上传速度慢也可以使用 ApplicationLoader这种方法试一下 xcode11之后上传IPA到appstore 1、...或者随便打开一个xcode工程,依次点击Xcode -> OpenDeveloperTool -> ApplicationLoader 登录需要用开发者账户去获取一下登录密码(非账号密码,记得要用IPA使用的申请证...书的账号登录) 登录之后左上角会显示账号名字,点击选取找到本地的ipa文件就可以了。
本文链接:https://blog.csdn.net/Mayxc/article/details/102794333 Xcode11 版本,通过xib创建UICollectionReusableView...}() 在使用xib的时候,存在获取nil问题 导致原因:UICollectionReusableView 类型创建时,xib未自动关联 ?...这个位置把创建的类名记得写入,这个是xcode问题,Mark一下,遇到同样问题的希望能有帮助到
内置的格式化程序 Formatter 所有专用格式化程序的父类,可以作为其它格式化程序的模板。 format函数:接收一个需要被格式化的对象,返回string类型的结果。...error属性 NumberFormatter 用来处理数值表示的细节,如小数的精度,很用作千分位分隔符的字符。...xmlns=""> NumberFormatter...具有同NumberFormatter同样的错误消息。 的格式化程序的不同在于,它对要处理的数据类型的上下文信息缺乏了解,因此用途有一定的局限性。 可以使用SwitchSymbolFormatter创建自定义格式化程序。
注意 升级为iOS13后,用Xcode10打包的ipa仍然不会有iOS13的特性(卡片modal和暗黑色),必须是Xcode11以上打包的才有 卡片样式 presentViewController出来的页面...,默认是卡片样式的,可以下滑移除,如果不想使用卡片模式,可以通过self.modalPresentationStyle = UIModalPresentationFullScreen进行修改 暗黑色主题...如果UI设计师还没设计好暗黑主题的样式,可以先不适配,只需要设置info.plist,增加字段User Interface Style,设置为Light
可以在playground里面进行界面开发,虽然不推荐,但确实可以 需要引入 PlaygroundSupport PlaygroundPage.current.liveView是展示内容的那个view...,将需要展示的内容赋值给它即可 应用:SwiftUI 是Xcode11中的新功能,要求macOS 10.15才可以开启预览功能,其实不升级系统,可以利用playground可视化开发来实现预览 import...indexPath: IndexPath) { print("Select: \(indexPath.row)") } } let vc = ViewController() //将显示的内容复制给
开发小集锦 记录开发中的琐碎技巧,以备查阅....NumberFormatter 将数字转为文字描述 let formatter = NumberFormatter() formatter.numberStyle = .spellOut guard...设置工程默认语言环境 weak 与 unowned 在swift的闭包中我们在使用self时为了避免循环引用的问题,经常使用weak self 或者unowned self,这两种方式既相似又略有区别...[weak self]在闭包中的 self 为可选类型 HttpTool.request("your-url").complete{ [weak self] response in self?....updateUI() } [unowned self]在闭包中的self 为非可选类型: 因此若闭包执行前self被释放,会造成crash HttpTool.request("your-url").
纯代码的条件 删除Main Interface中的Main,同时需要删除info.plist中的如下代码 UISceneStoryboardFile Main的生命周期。...保留SceneDelegate AppDelegate中通过application(_:configurationForConnecting:options)返回一个UISceneConfiguration...makeKeyAndVisible() } 不保留SceneDelegate 删除SceneDelegate.swift 删除info.plist中的如下内容 ?...删除内容.png 3.AppDelegate.swift中代码写成和Xcode11之前的样子 var window: UIWindow?
使用代码块可以减少重复性劳动,提高编写程序的速度。 在 Xcode11 中,Code Snippets的入口为右上角的“+”按钮。user 区为自定义的代码块,其它区为系统的代码块。 ?...Code Snippets自定义 选中要定义成代码块的代码,右键,选择Create Code Snippet。 ? 编辑代码块。...Xcode不会警告冲突 / 重复的输入码,所以一定要确保新添加的不要和已有的冲突。 Availability:限制可访问该代码块的范围。如if/else语句的自动补全应该只在方法或者函数的实现中有效。...Code Snippets使用 输入代码块的快捷输入码,就会有智能提示。 ? ? 4....Code Snippets备份转移 Xcode 中的代码块默认存放在下面的目录中: ~/Library/Developer/Xcode/UserData/CodeSnippets 可以将目录中的代码块备份
修复了错误#76047(访问已破坏的回溯参数时可以自由使用)。 CURL: 修复了错误#79078(curl_multi_add_handle()中的假定使用后释放)。...国际: 修复了错误#79212(NumberFormatter :: format()可能检测到错误的类型)。...Libxml: 修复了错误#79191(SoapClient ctor中的错误禁用了DOMDocument :: save())。...(CVE-2020-7063) 修复了错误#79171(phar_extract_file中的堆缓冲区溢出)。...Session: 修复了错误#79221(PHP Session上传进度中的空指针取消引用)。
PHP中针对区域语言标记信息的操作 相信大家对 zh_CN 这个东西绝对不会陌生,不管是 PHP 中,还是在我们的网页上,都会见到它的身影。...php.ini 文件中的 intl.default_locale 配置的内容。...如果在 php.ini 中也没有配置的话,就会取操作系统的 $LANG 值里面的内容,也就是我们上面例子中输出的 en_US_POSIX ,POSIX 表示的就是来自操作系统的配置。...因此,上面的那一段也可以这么写: cmn-Hans-CN-Latn-pinyin 在上篇文章中,我们讲 NumberFormatter 时说过可以直接获得中文的数字格式的输出,现在我们想要繁体的结果呢...$fmt = new NumberFormatter('zh-Hant', NumberFormatter::SPELLOUT); echo $fmt->format(1234567.891234567890000
好久之前跟新到Xcode11,跟新完成后打开以前老项目并未有什么太大变化,也就没有在意,今天新建一个项目,创建完成后,发现多了个SceneDelegate的.m和.h文件,这是什么鬼?它有什么用呢?...新创建项目目录 AppDelegate和SceneDelegate是iPadOS带来的新的多窗口支持的结果,并且有效地将应用程序委托的工作分成两部分。...原来在iOS13中,AppDelegate的文件结构发生了变化: iOS13以前:AppDelegate处理App生命周期和UI生命周期; iOS13以后:处理 App 生命周期和新的 Scene...Session 生命周期,在AppDelegate.h文件中没有了window属性,而是在SceneDelegate中,可见AppDelegate不管理window而是交给SceneDelegate。...1.SceneDelegate中添加@available(iOS 13, *); 2.AppDelegate中同样声明window属性,代码: - (BOOL)application:(UIApplication