Questions tagged «ios»

iOS是在Apple iPhone,iPod touch和iPad上运行的移动操作系统。使用此标签[ios]来解决与iOS平台上的编程有关的问题。使用相关的标签[objective-c]和[swift]解决那些编程语言所特有的问题。


6
从Swift在iOS上生成UUID
在我的iOS Swift应用中,我想生成随机UUID(GUID)字符串用作表键,此代码段似乎可以正常工作: let uuid = CFUUIDCreateString(nil, CFUUIDCreate(nil)) 这样安全吗? 还是有更好的(推荐)方法?

30
-didSelectRowAtIndexPath:不被调用
我正在写一个带有选项卡视图内的表格视图的iOS应用。在我的中UITableViewController,我实现了-tableView:didSelectRowAtIndexPath:,但是当我在运行时选择一行时,不会调用该方法。虽然正在填充表视图,所以我知道正在调用控制器中的其他tableView方法。 有谁知道我可能为实现这一目标而搞砸了什么?

16
Swift-编码URL
如果我编码这样的字符串: var escapedString = originalString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) 它不能逃脱斜线 /。 我搜索并找到了此Objective C代码: NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes( NULL, (CFStringRef)unencodedString, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8 ); 有没有更简单的方法来编码URL,否则,如何在Swift中编写此代码?
295 ios  swift  urlencode 

24
在iOS 13上可以选择退出暗模式吗?
我的应用程序很大一部分由Web视图组成,以提供本机实现尚未提供的功能。Web团队没有计划为网站实施深色主题。因此,在iOS 13上使用暗模式支持时,我的应用看上去会有点一半。 是否可以选择不支持暗模式,以便我们的应用程序始终显示亮模式以匹配网站主题?
295 ios  ios13  ios-darkmode 

7
为什么收到控制台警告:当我在iOS13.2中加载WKWebView时,[Process] kill()返回意外错误1?
自从我安装iOS 13.2 beta以来,我一直收到调试控制台错误消息。每当我在情节提要中加载带有WKWebView对象的ViewController时,都会发生这种情况。 然后在显示Web视图时连续显示以下消息... 2019-10-10 12:10:47.867830+0200 (...) [Process] kill() returned unexpected error 1 2019-10-10 12:10:47.908698+0200 (...) [Process] kill() returned unexpected error 1 2019-10-10 12:10:47.908814+0200 (...) [Process] kill() returned unexpected error 1 2019-10-10 12:10:47.934169+0200 (...) [Process] kill() returned unexpected error 1 2019-10-10 12:10:47.947668+0200 (...) [Process] kill() returned unexpected error 1 2019-10-10 …

15
颜色色调UIButton图像
我注意到,当我将白色或黑色UIImage放入其中时,UISegmentedControl它会自动对其进行颜色遮罩,以匹配分段控件的色彩。我认为这真的很酷,并且想知道我是否也可以在其他地方这样做。例如,我有一堆形状统一但颜色不同的按钮。除了可以为每个按钮制作一个PNG之外,我还可以某种方式使用此颜色遮罩对所有按钮使用相同的图像,然后设置淡色或更改其实际颜色的方法吗?

8
如何将iPhone Core Data与Web服务器同步,然后推送到其他设备?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 我一直在研究一种在多个设备(例如iPad或Mac)之间同步iPhone应用程序中存储的核心数据的方法。没有太多(如果有的话)同步框架可用于iOS上的Core Data。但是,我一直在思考以下概念: 对本地核心数据存储进行更改,并保存更改。(a)如果设备在线,它将尝试将更改集发送到服务器,包括发送更改集的设备的设备ID。(b)如果变更集未到达服务器,或者设备不在线,则应用会将变更集添加到队列中,以便在其联机时发送。 位于云中的服务器将接收到的特定更改集与其主数据库合并。 在云服务器上合并变更集(或变更集队列)后,服务器会使用某种轮询系统将所有这些变更集推送到在服务器上注册的其他设备。(我曾考虑使用Apple的Push服务,但显然根据评论,这不是一个可行的系统。) 我有什么想想的吗?我研究了REST框架,例如ObjectiveResource,Core Resource和RestfulCoreData。当然,这些都可以与Ruby on Rails一起使用,尽管我并不依赖于Ruby on Rails,但这是一个起点。我对解决方案的主要要求是: 任何更改都应在不暂停主线程的情况下在后台发送。 它应该使用尽可能少的带宽。 我考虑了许多挑战: 确保在服务器上附加了不同设备上不同数据存储的对象ID。也就是说,我将有一个对象ID和设备ID的表,它们通过对存储在数据库中的对象的引用进行绑定。我将有一条记录(DatabaseId [此表唯一],ObjectId [该项目在整个数据库中唯一],Datafield1,Datafield2),ObjectId字段将引用另一个表AllObjects:(ObjectId,DeviceId,DeviceObjectId)。然后,当设备上载更改集时,它将沿着本地数据存储区中的核心数据对象传递设备ID和objectId。然后,我的云服务器将检查AllObjects表中的objectId和设备ID,并在初始表中找到要更改的记录。 所有更改都应加上时间戳,以便可以合并。 设备将必须轮询服务器,而又不会消耗过多的电池。 如果/从服务器收到更改,则本地设备还需要更新内存中保存的所有内容。 我还有其他想念的地方吗?我应该考虑采用哪种框架来实现这一目标?

23
如何从Xib文件加载自定义UITableViewCells?
问题很简单:如何UITableViewCell从Xib文件加载自定义?这样可以使您使用Interface Builder设计单元。由于内存管理问题,答案显然并不简单。该线程提到了该问题并提出了解决方案,但已在NDA之前发布,并且缺少代码。这是讨论问题的长篇文章,但没有提供明确的答案。 这是我使用的一些代码: static NSString *CellIdentifier = @"MyCellIdentifier"; MyCell *cell = (MyCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil]; cell = (MyCell *)[nib objectAtIndex:0]; } 要使用此代码,请创建MyCell.m / .h,这是MyCell的新子类,UITableViewCell并IBOutlets为所需的组件添加。然后创建一个新的“ Empty XIB”文件。在IB中打开Xib文件,添加一个UITableViewCell对象,将其标识符设置为“ MyCellIdentifier”,并将其类设置为MyCell并添加您的组件。最后,将连接IBOutlets到组件。请注意,我们没有在IB中设置文件的所有者。 其他方法提倡设置文件的所有者,如果没有通过其他工厂类加载Xib,则警告内存泄漏。我在“仪器/泄漏”下测试了以上内容,但没有发现内存泄漏。 那么从Xibs加载单元的规范方法是什么?我们是否设置文件的所有者?我们需要工厂吗?如果是这样,工厂的代码是什么样的?如果有多种解决方案,让我们阐明它们各自的优缺点...

13
我可以安全删除Xcode Derived数据文件夹的内容吗?
我的磁盘空间不足,并通过第三方实用程序检查了〜/ Library / Developer / Xcode / DerivedData目录是否占用了大约22GB的磁盘空间。 我搜索了stackoverflow,发现了这篇文章 如何安全地在〜/ Library / Developer / Xcode / DerivedData目录中删除? 该问题的可接受答案表明,我不应该触摸/从该目录中删除文件夹。所以我所做的是 为我在Appstore上可用的应用程序找到了一个现有的构建项目文件夹 从派生目录中删除文件夹 推出了XCode 5 打开那个项目 干净的构建 在模拟器上测试并编译 重新存档 一切正常。什么都没坏。 除非我在该帖子的答案中遗漏了某些内容,否则我想通过询问有经验的开发人员来确保,如果我从DerivedData中删除所有文件夹,那么在构建,测试和编译这些项目时不会对我造成伤害。
293 ios  xcode 



24
在UIToolbar上创建一个左箭头按钮(如UINavigationBar的“后退”样式)
我很想在中创建一个“后”左箭头屏幕按钮UIToolbar。 据我所知,获取其中之一的唯一方法是保留UINavigationController默认设置,并且将其中一个用于左栏。但是我找不到将其创建为a的方法UIBarButtonItem,因此UIToolbar即使它们与UINavigationBars 非常相似,也无法在标准中创建一个。 我可以使用按钮图像手动创建它,但是在任何地方都找不到源图像。它们具有Alpha通道边缘,因此截图和剪切不会获得非常通用的结果。 除了我打算使用的每种尺寸和配色方案的屏幕截图以外,还有其他想法吗? 更新:请停止回避问题,并建议我不应该问这个问题,而应该使用UINavigationBar。我的应用是Instapaper Pro。它仅显示底部的工具栏(以节省空间并最大程度地增加可读区域),我希望在底部放置一个左箭头形的“后退”按钮。 告诉我我不需要这样做不是一个答案,当然也不应该得到赏金。

30
收到EXC_BAD_ACCESS信号
将应用程序部署到设备上时,程序将在几个周期后退出,并显示以下错误: Program received signal: "EXC_BAD_ACCESS". 该程序可以在iPhone模拟器上运行,没有任何问题,只要我一次逐步执行说明,它就会进行调试和运行。一旦让它再次运行,我就会EXC_BAD_ACCESS发出信号。 在这种情况下,加速度计代码恰好是一个错误。它不会在模拟器中执行,这就是为什么它不会引发任何错误的原因。但是,它将在部署到设备后执行。 该问题的大多数答案都涉及一般EXC_BAD_ACCESS错误,因此我将保留所有这些作为对可怕的错误访问错误的综合解决方案。 EXC_BAD_ACCESS通常是由于非法内存访问而抛出的。您可以在下面的答案中找到更多信息。 您EXC_BAD_ACCESS以前是否遇到过信号,并且如何处理?
290 ios  cocoa-touch 

13
故事板登录屏幕的最佳做法,注销时处理数据清除
我正在使用Storyboard构建iOS应用。根视图控制器是一个标签栏控制器。我正在创建登录/注销过程,并且工作正常,但是我遇到了一些问题。我需要知道设置所有这些的最佳方法。 我要完成以下任务: 首次启动应用程序时显示登录屏幕。他们登录时,转到“标签栏控制器”的第一个标签。 他们之后在任何时候启动应用程序,请检查它们是否已登录,然后直接跳到根选项卡栏控制器的第一个选项卡。 当他们手动单击注销按钮时,将显示登录屏幕,并清除视图控制器中的所有数据。 到目前为止,我所做的是将根视图控制器设置为“ Tab Bar控制器”,并为“登录”视图控制器创建了自定义序列。在我的Tab Bar Controller类中,我检查它们是否已在viewDidAppear方法内部登录,并执行以下命令:[self performSegueWithIdentifier:@"pushLogin" sender:self]; 我还设置了有关何时需要执行注销操作的通知: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(logoutAccount) name:@"logoutAccount" object:nil]; 注销后,我从钥匙串中清除凭据,运行[self setSelectedIndex:0]并执行segue以再次显示登录视图控制器。 一切正常,但我想知道:这种逻辑是否应该在AppDelegate中?我还有两个问题: 他们首次启动该应用程序时,会在执行Segue之前短暂显示Tab Bar Controller。我曾尝试将代码移到其中,viewWillAppear但是segue不能这么早地起作用。 当他们注销时,所有数据仍位于所有视图控制器中。如果他们登录到新帐户,则在刷新之前仍会显示旧帐户数据。我需要一种在注销时轻松清除此问题的方法。 我愿意对此进行修改。我考虑过将登录屏幕设为根视图控制器,或者在AppDelegate中创建一个导航控制器来处理所有事情……我只是不确定目前最好的方法是什么。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.