草庐IT

swift-data

全部标签

ios - 实现另一个 @objc 协议(protocol)的 Swift 协议(protocol)

使用Swift4,我正在尝试编写一个自定义协议(protocol),它提供对@objc协议(protocol)的一致性。一些代码更具体地说,我有一个自定义协议(protocol)Searchable,它提供了UIKit协议(protocol)UISearchBarDelegate的简单实现,只需要实现一个回调来处理搜索过滤器更改。@objcprotocolSearchable:class,UISearchBarDelegate{@objcfuncsearchFilterChanged(_:String?)}我在协议(protocol)扩展中提供委托(delegate)实现:extens

ios - 迁移大型 Core Data 数据库崩溃

我有一个将产品存储在核心数据文件中的应用程序。这些产品包括作为“可转换”数据的图像。现在我尝试使用轻量级迁移添加一些属性。当我用一个小型数据库测试它时,它运行良好,但当我使用一个非常大的近500MB的数据库时,应用程序通常会因为内存不足而崩溃。有人知道如何解决这个问题吗?提前致谢! 最佳答案 您必须使用其他迁移选项之一。自动轻量级迁移过程,使用起来确实方便。但它有一个缺点,它会将整个数据存储一次加载到内存中。两份,真的,一份用于迁移前,一份用于迁移后。首先,是否可以重新创建或重新下载这些数据?如果是这样,您可以使用从旧版本到新版本的

ios - 我可以在一个应用程序中创建一个 Core Data 对象图,然后以预设状态在另一个应用程序中使用它吗?

我的应用程序现在有一个包含大约5,000个词典的.plist,在运行时,我用它来创建自定义类的5,000个对象。每个都包含一些字符串、一些bool值等。这是一个相当快的过程,最多只需要几秒钟,但使用包含数千个对象的.plist有点笨拙。我将迁移到CoreData(我以前从未使用过),因此第一步是将数据从.plist获取到那些自定义对象中,然后将它们保存在上下文中。我已经观看了视频等内容,并且认为我可以这样做。我的第一个问题是:我能否在一个小型的独立应用程序(例如,称为ObjectMaker)中创建对象图和数据模型,然后将其保存在那里,然后导入.sqlite或我导出数据的任何格式至于我正

iphone - UIViewController 中的哪个方法应该完成 "populating data"的工作以供查看?

我对iOS开发世界还很陌生。只是想知道我应该总是在viewDidLoad方法中这样做吗?始终在viewDidUnload中释放它也是一个好主意吗?谢谢。 最佳答案 通常在awakeFromNib、viewDidLoad或viewWillAppear中。初学者通常首先将所有内容都放在viewDidLoad中,这对于简单View来说很好,但有理由使用其他方法。awakeFromNib在打开Nib时调用。您可以在此处添加任何其他View或设置IB中不可用的属性。如果您不使用IB,则不会调用它。viewDidLoad在加载“View”时调用

objective-c - 使用 Core Data 时提高 UI 性能

我一直在我的项目中使用CoreData,我一直依赖它的数据错误系统来返回缓存数据,但是我遇到了一些性能问题,尤其是在配置其View的UITableView中显示数据时基于这个获取的数据。它基本上是通过它们的唯一ID获取一些NSManagedObject实例,并将存储在NSNumber中的值相加。它在for循环中对大约40个不同的对象执行此操作,并且每次重新加载UITableView时都会执行此操作。是否有任何建议的方法来监听Co​​reDataNSManagedObjects中的更改或在我的级别缓存数据的方法,或者我应该依赖数据错误,而这只是我做错了什么?如果您能指出一个好的模式来处理

ios - ADALiiOS :Cannot add a new item in the keychain/O365-iOS-Connect-Swift

我目前正在开发一个连接到Office365的iOS应用程序,目标为iOS7。使用了以下pod:pod'ADALiOS','~>1.2.1'pod'Office365/Outlook','=0.9.1'pod'Office365/Discovery','=0.9.1'当我在模拟器中运行它时一切正常。当我在设备上运行它时,出现“无法在钥匙串(keychain)中添加新项目”错误。我还尝试了共享钥匙串(keychain)功能,但这并没有改变任何东西。这是错误消息,它甚至在我从Github运行O365-iOS-Connect-Swift示例时出现:2015-06-1620:44:58.758O

ios - Swift 2.0 : Variable was never mutated, 考虑改成让

将我的源代码转换为Swift2.0后,我收到了999多个警告,其中超过500个警告是“变量abc从未发生过突变,请考虑将其更改为let”。有没有办法一次解决所有这些警告?逐行修复此警告需要花费大量时间。至少Apple应该在转换为Swift2.0时自动更新。 最佳答案 这里有一个想法:将所有的var全局更改为let然后恢复错误,我的猜测是更改的内容会更少。 关于ios-Swift2.0:Variablewasnevermutated,考虑改成让,我们在StackOverflow上找到一个类

ios - swift3 从其他 swift.file 调用警报功能

我是swift3的新手。现在,我正在寻找一种从其他swift.file调用警报功能的方法像这样://MainView.swift//CallfunctionAlertFun.ShowAlert(title:"Title",message:"message...")//Anotherpageforstoringfunctions//Function.swiftpublicclassAlertFun{classfuncShowAlert(title:String,message:String){letalert=UIAlertController(title:tile,message:me

ios - navigationController popToViewController 无法在 swift 3 中工作

我想在swift3.0中使用navigationController的popToViewController。为此,我编写了以下代码,但没有按预期工作。letcontrollers=self.navigationController?.viewControllersforvcincontrollers!{ifvcisHomeViewController{self.navigationController?.popToViewController(vc,animated:true)}}我也写了下面的代码,但那也行。forvcincontrollers!{ifvc.isKind(of:Ho

ios - 更改嵌入按钮的图像颜色(Swift3)

我可以使用以下代码将UIButton的图像颜色从黑色更改为白色:extensionUIImage{funcmaskWith(color:UIColor)->UIImage{UIGraphicsBeginImageContextWithOptions(size,false,scale)letcontext=UIGraphicsGetCurrentContext()!context.translateBy(x:0,y:size.height)context.scaleBy(x:1.0,y:-1.0)context.setBlendMode(.normal)letrect=CGRect(x: