草庐IT

Swift-Mailer

全部标签

iOS Swift Firestore 以及如何避免单例

我正在使用GoogleFirestore和MVVM模式。据我所知,由于测试问题而避免使用单例是一种很好的做法。但是,如果没有它,我应该如何正确使用Firestore呢?恐怕每次我在我的View模型中创建服务实例时都会创建对Firestore的新订阅。同样在MVVM的情况下,订阅和取消订阅Firestoredatabase的正确位置在哪里?它应该发生在ViewModel中还是应该由某些服务来处理? 最佳答案 单例是反模式并且必须不惜一切代价避免的想法被高估了恕我直言,您可以使用单例,并且可以使用DI和模拟轻松地测试它们。在您的情况下,

swift - Xcode Playground 只能部分运行

如上所示,在Xcodeplayground中,我正在尝试扩展协议(protocol)Exercise以具有另外两个计算属性,caloriesBurnedPerMinute和description。当我想在Playground上运行这部分代码时,最左下角的“播放按钮”显示为灰色,表示直到第20行才能运行代码。但是,如果我只想运行代码直到第14行,如下图,“播放按钮”显示为蓝色,表示可以运行到第14行的代码。我可以知道协议(protocol)练习的第二个扩展是否有问题吗?编辑:以下是代码。importCocoaprotocolExercise:CustomStringConvertible

swift - 自定义 NSTableView 表头、背景色、去除边框

我需要添加背景颜色、更改标题字体并移除NSTableView标题上的边框。我已经绘制了红色背景并调整了页眉高度大小,但我找不到任何方法来进一步自定义它。这是我所能达到的:overridefuncviewDidLoad(){super.viewDidLoad()myTable.tableColumns[0].headerCell=CustomHeaderCell()myTable.headerView?.frame.size.height=50}classCustomHeaderCell:NSTableHeaderCell{overridefuncdraw(withFramecellFr

swift - 他们是否从 Xcode 的智能感知菜单中删除了 Assets 文件夹中的图像?

我记得在Xcode8或9中,当您开始输入代码时,Xcode会将Assets文件夹中的图像显示到Intellisense菜单中。因此,当我打字时,假设我有一张名为“房子”的图片,如果我输入“房子”一词,该图片将出现在列表中,当我选择它时,该图片将出现在代码行中。现在出现了什么:正如您现在从照片中看到的那样,代码中不再有图像,取而代之的是库存基本图像图标。他们是故意选择从Intellisense中删除图像,还是我现在需要设置某种标志以允许显示图像? 最佳答案 现在我们有ImageLiteral,只需键入它,选择它并选择您想要的图像。用法

ios - 查看对键盘显示和隐藏 Ios Swift 4 的响应

这是我的看法。当我在TextView中单击时,键盘出现在顶部。所以我添加了一个类,并在该类中添加了这些函数。varobjectObserver:UIViewController?funcsetKeyboardResponsiviness(observer:UIViewController){objectObserver=observerNotificationCenter.default.addObserver(self,selector:#selector(self.keyboardWillShow),name:UIResponder.keyboardWillShowNotifica

swift - HackerRank 说 ~ stdout 没有回应 ~ Swift

我正在参加一个关于Swift编程的实践问题的类(class),这将我重定向到Hackerrank编写一个名为printMessage的函数,它有两个参数——一个字符串消息和一个整数计数。该消息应打印并重复计数参数中指定的消息。消息:“你好,你好吗”例如Count为8这应该连续打印Message:"Hello,HowareYou"8次。问题是当我提交我的代码时总是说错误答案,然后我尝试使用自定义输入,但它在STDOUT上没有任何响应。有谁知道怎么回事吗?importFoundationfuncprintMessage(message:String,count:Int){for_in0..

Swift 协变泛型函数 : placeholder type is a subclass of another

我有一个将两个类作为参数的函数。我希望第一个是NSObject的子类(到目前为止非常简单),第二个是子类或与另一个相同的类——我该如何表达?classMyClass:NSObject{}classMySubClass:MyClass{}myFunction(MyClass.Type,MySubClass.Type)MyFunction定义如下:funcmyFunction(param1:T.Type,param2:T.Type)不幸的是,因为MyClass和MySubClass不相同(我对myFunction的定义期望它们完全相同),'(MyClass.Type,MySubClass.

swift - 使用 Network.framework 检测客户端与 UDP 断开连接

我正在尝试确定UDP客户端在使用Network.framework时何时停止向服务器发送数据包我构建了一个小示例,演示当客户端的连接被取消时,服务器无法将状态更改为.cancelled。示例客户端:importFoundationimportNetworkfuncsendMessage(onconnection:NWConnection){connection.send(content:"hello".data(using:.utf8),completion:.contentProcessed({errorinifleterror=error{print("errorwhilesend

ios - 使用 Swift 对日语字符进行排序

我有以下行按名称对项目列表进行排序:letnameSort=NSSortDescriptor(key:"item.itemName",ascending:true,selector:#selector(NSString.caseInsensitiveCompare))这适用于英文名称。但对于日语,它会将平假名、片假名和汉字分开排序,而不是交织在一起。我注意到iOS联系人应用程序正确排序并且没有划分三个单独的脚本。想知道如何实现这一目标? 最佳答案 您可以使用localizedCompare或localizedCaseInsensit

swift - 如何在不同情况下以编程方式快速限制 View 多次?

我有一些标签作为按钮,每个标签都过滤我的表格View内容。在我的一个标签中,我需要将表格View稍微移到底部。因为我必须向用户显示另一个View,并且表格View必须位于下方。我对View中的所有View都有约束,首先加载方法,我应该再次在标签监听器中约束我的tableView。这是我的第一个约束的代码overridefuncsetupViews(){super.setupViews()view.addSubview(header)view.addSubview(serachOptionView)view.addSubview(tableView)header.addSubview(m