小编Emi*_*iOS的帖子

错误编程的后果:dismissViewController vs popViewController

我明白之间的差别dismissViewControllerAnimated:completion:,并popViewControllerAnimated:如所描述的堆栈溢出,在这里:

-dismissViewControllerAnimated:completion:方法用于驳回的UIViewController,这是由该方法提出: -presentViewController:animated:completion:.

-popViewControllerAnimated:UINavigationController的方法用于弹出-pushViewController:animatedUINavigationController方法所示的控制器.

我最近在我的应用程序中发现了一个错误,我正在使用它[self dismissViewControllerAnimated:completion:]来解雇在导航嵌入式应用程序中推送的VC.当我应该吃比萨饼的时候,法国人炒了.我没有抓到错误,因为一切正常,我的VC按预期被解除分配.

我的问题:混合这两种方法有什么后果?

cocoa-touch uiviewcontroller navigationcontroller ios

18
推荐指数
1
解决办法
1万
查看次数

XCode 7.0.1,Bots和Server 5.0.4:测试目标"xx"遇到错误 - 超时等待120秒,模拟器启动

预期结果:在创建机器人时检查"测试"复选框,Xcode服务器完美地执行mt测试,就像在WWDC中一样.

在此输入图像描述

结果: Xcode阻止了一堆模拟器超时错误,并且集成失败.

在此输入图像描述 Test target "xxx" encountered an error (Timed out waiting 120 seconds for simulator to boot, current state is 1. If you believe this error represents a bug, please attach the log file at /Library/Developer/XcodeServer/Integrations/Integration-0e5a387ef456a57b7a2d5a90d004256d/xxxx.log)

环境:

  • XCode 7.0.1
  • Server 5.0.4
  • OSX 10.11
  • 在两个不同的机器上复制两个不同的项目.
  • 此外,在OSX 10.10和Xcode 6上体验了这一点

真正的问题: 我是一个有足够能力的程序员,拥有多年的iOS经验.很难相信,尽管可能不应该,但在WWDC中看起来如此简单的东西在两个不同的操作系统和Xcode版本上都会如此难以理解.任何帮助,将不胜感激!

笔记:

  • 我在同一台机器上运行Xcode和Xcode Server.我没有SSH.
  • Xcode建议检查的集成日志文件路径无效,但我可以从Xcode获取原始构建日志

这是其他人有类似问题的列表,也许它会帮助其他人:

xcode continuous-integration bots ios xcode-server

7
推荐指数
1
解决办法
589
查看次数

Swift:removeFromSuperview() 崩溃

问题:当我尝试删除子视图时应用程序崩溃。

上下文:我有一个使用模型对象更新的 UICollectionViewCell。我试过将这些方法放入prepareForReuse和/或update(model: viewModel)方法中。

注释:该线That view's superview: NO SUPERVIEW突出。我在调用之前将子视图添加回removeFromSuperView()以确保在 superView 中有一些并且它仍然会崩溃。

timelineView一旦所有旧实例都被清除,我稍后会重新添加新生成的类实例。

它仅在滚动约 50-150 个单元格后崩溃

更新:感谢您在评论中的反馈。我不会从单元格中删除所有视图。只有一个具有可变数量组件的堆栈视图。但是您有权删除子视图与取消。我更好奇这样的事情是stackView.subviews.first?.removeFromSuperview()如何失败的,因为这似乎是一个相对安全的调用(或者我对此完全错了)。

第一次尝试

for subview in stackView.subviews {
    subview.removeFromSuperview() // Crash
}
Run Code Online (Sandbox Code Playgroud)

第二次尝试

let subviews = stackView.subviews
for subview in subviews {
    if stackView != nil && subview.superview != nil && subview.responds(to: #selector(removeFromSuperview)) && stackView.superview != nil {
            stackView.subviews.first?.removeFromSuperview() // Crash
    }
}
Run Code Online (Sandbox Code Playgroud)

第三次尝试

let subviews = stackView.subviews
for subview in …
Run Code Online (Sandbox Code Playgroud)

ios autolayout nslayoutconstraint swift uistackview

7
推荐指数
1
解决办法
4654
查看次数

在UIScrollView中嵌入UICollectionView几乎完美无缺

背景

我嵌入了一个UICollectionView内部,UIScrollView它的工作几乎完美.

目标

可滚动元素一旦到达contentViews的末尾就应该无缝地传递滚动.当我向下滑动UIScrollView时,它应向下滚动,以便UICollectionView占据屏幕的约90%,然后继续滚动collectionView.反之亦然,当我向上滚动collectionView并到达collectionView内容的顶部时,scrollview应该开始向上滚动.

问题

1)当我向上滚动集合视图时,它会滚动到顶部并停止.如果我向下滑动几次它仍会弹出collectionView而不是向上滚动scrollView.我必须再次"故意"点击collectionView,以便让父ScrollView向上滚动.

见gif:
双反弹

我想它与某些事情有关,CancelContentTouches但我无法得到正确的组合.

2)当我向下滚动时,滚动视图到达contentView的末尾时,它会停止并弹回.

见gif:
向下滚动并坚持下去

注意:我意识到不建议在UIScrollView中放置UICollectionView.我尝试了下面列出的替代方案,但是通过将我的顶视图放在标题中我无法达到预期的效果.我希望能够独立滚动,所以我决定使用scrollview/collectionView组合.

查看层次结构

MainViewController
- ScrollView
- 配置文件统计
- CollectionViewContainerView
--- CollectionView

资源其他人希望将collectionViews放入scrollViews由于某种原因:
我试过它们,但它们不能用于我的用例.

gesture-recognition uiscrollview ios uiview-hierarchy uicollectionview

7
推荐指数
1
解决办法
2114
查看次数

CoreData:按照创建顺序获取和排序结果,而不使用时间戳.

这是一个非常简单的问题.

我有一个使用本地文件初始化的CoreData数据库.CoreData架构如下所示:

Category -->> Objections -->> Responses -->> Evidence
Run Code Online (Sandbox Code Playgroud)

(" - >>"表示有很多)

我正在使用NSFetchedResultsController从核心数据中检索对象.很标准.

NSEntityDescription *entity = [NSEntityDescription entityForName:NSStringFromClass([OHObjection class])inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"[suitable key]" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];

[fetchRequest setSortDescriptors:sortDescriptors];

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"category.objectionCategoryText" cacheName:nil];
Run Code Online (Sandbox Code Playgroud)

每个"To To"关系都是有序的.

问题:是否可以按创建顺序获取数据而不使用时间戳或显式设置我自己的ID?

注意:我没有反对使用时间戳或创建自己的ID,我只想知道是否可能.

谢谢

core-data objective-c nssortdescriptor nsfetchedresultscontroller ios

5
推荐指数
2
解决办法
3820
查看次数

如何将大量数据加载到CoreData中

我有一个使用本地文件初始化的CoreData数据库.
CoreData架构如下所示:

Category -->> Objections -->> Responses -->> Evidence  
Run Code Online (Sandbox Code Playgroud)

(" - >>"表示有很多)

每个实体还有一个描述,可以是2到数千个字符长,存储在NSString中.

问题:如何存储这些数据,以便人们在不必了解编程的情况下轻松编辑?(但也遵循最佳做法)

目前,我认为这些是可能的方法:

1)将所有内容存储在一个大的plist文件中.这将是大约25页长.
2)将每个实体分成它自己的PList文件,并将每个值与ID#相关联,如关系数据库.这将使文件的大小更易于管理,但您必须跟踪ID#.
3)与上面相同,但使用JSON

database-design core-data objective-c plist ios

2
推荐指数
1
解决办法
1100
查看次数

沿SVG文件定义的CGPath的CAKeyFrameAnimation是生涩的.

我想沿路径设置对象的动画.我得到了它的工作,但运动不是线性的.(它在路径中的小弯道上减速很多.)

以下是主要步骤.

1)使用PockeSVG从SVG文件导入路径

-(CGMutablePathRef)makeMutablePathFromSVG:(NSString *)svgFileName{
    PocketSVG *myVectorDrawing0 = [[PocketSVG alloc] initFromSVGFileNamed:svgFileName];
    UIBezierPath *myBezierPath0 = myVectorDrawing0.bezier;
    return CGPathCreateMutableCopy([myBezierPath0 CGPath]); 
}
Run Code Online (Sandbox Code Playgroud)

2)创建CAKeyFrameAnimation

CAKeyframeAnimation *moveAlongPath = [CAKeyframeAnimation animationWithKeyPath:@"position"];
CGMutablePathRef animationPath = CGPathCreateMutableCopy(pathForwardTo5);
[moveAlongPath setPath:animationPath];
[moveAlongPath setDuration:1.0f];
moveAlongPath.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
moveAlongPath.delegate = self;
[[trackButton layer] addAnimation:moveAlongPath forKey:@"moveButtonAlongPath"];
CFRelease(animationPath);
Run Code Online (Sandbox Code Playgroud)

我尝试使用其他CAMediaTimingFunctions,他们都表现出这种行为.

问题:动画本身有效,但它并不遵循平滑一致的速度.知道为什么吗?

svg core-animation cakeyframeanimation cgpath ios

1
推荐指数
1
解决办法
467
查看次数