小编net*_*000的帖子

在弃用Swift C风格循环后,在循环中减少索引

你如何在Swift 3.0中表达一个递减的索引循环,其中下面的语法不再有效?

for var index = 10 ; index > 0; index-=1{
   print(index)
}

// 10 9 8 7 6 5 4 3 2 1
Run Code Online (Sandbox Code Playgroud)

for-loop decrement swift

38
推荐指数
4
解决办法
2万
查看次数

Xcode 7 UITests具有本地化UI

在我的应用程序中,我正在使用NSLocalizedString本地化我的应用程序.现在我想切换到UITests和这样的测试代码:

[tabBarsQuery.buttons["particiants"] tap];
Run Code Online (Sandbox Code Playgroud)

这适用于英语,但不适用于其他语言.

[tabBarsQuery.buttons[NSLocalizedString("PARTICIPANTS",comment:nil)] tap];
Run Code Online (Sandbox Code Playgroud)

失败 - 可能是因为Localizable.strings在另一个包中.如何测试本地化应用?

ios swift xcode7 xcode-ui-testing

32
推荐指数
4
解决办法
9340
查看次数

angular:HttpClient地图响应

目前我正在从http(@ angular/http)切换到HttpClient(@ angular/common/http),并且在将响应映射到对象时遇到了问题.

旧代码(之前正在工作)

this.http.get(environment.baseUrl + '/api/timeslots')
            .map((response: Response) => {
                    const data = response.json();
                    const timeslots = Array.of<Timeslot>();
                    for (const item of data) {...}
Run Code Online (Sandbox Code Playgroud)

新代码,但编译错误:

this.httpClient.get(environment.baseUrl + '/api/timeslots')
                .map((response: Response) => {
                        const data = <Timeslot[]> response;
const timeslots = Array.of<Timeslot>();
                    for (const item of data) {...}
Run Code Online (Sandbox Code Playgroud)

我是否想念演员?响应是一系列Timeslots.

angular

22
推荐指数
3
解决办法
5万
查看次数

XCTestCase:等待应用程序空闲

我的UI测试失败,因为测试等待无休止,直到应用程序闲置.我无法看到背景中发生了任何事情,比如加载微调器.

它只出现在一个选项卡上.所有其他选项卡都是可点击的,但测试在屏幕3上失败.在屏幕3上测试后,单击另一个选项卡,测试恢复并成功完成.

有任何想法吗?

- (void)testExample
{

    XCUIElementQuery* tabBarsQuery = self.app.tabBars;

    [tabBarsQuery.buttons[@"Screen2"] tap];
    [tabBarsQuery.buttons[@"Screen3"] tap];
    [tabBarsQuery.buttons[@"Screen1"] tap];
    [tabBarsQuery.buttons[@"Screen4"] tap];

}
Run Code Online (Sandbox Code Playgroud)

ios xcode7 xcode-ui-testing xctestcase

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

领域:结果<T> als List <T>

是否有可能转换Results<T>List<T>或不应该这样做?

在我的情况下,我有方法将List作为参数.我想用fetched objects(Results<T>)和计算对象(List<T>)调用此方法

realm ios swift

12
推荐指数
3
解决办法
6830
查看次数

黑屏与UIViewControllerAnimatedTransitioning

我已经创建了一个转换,它工作正常,除了我在模拟器中有时会出现黑角.此外,在iPad Pro中,如果我以全分辨率运行模拟器,我会得到一个完全黑屏.调整大小的决议工作正常.你知道可能是什么问题吗?我认识到的另一件事是黑屏幕背后的内容就在那里,并对触摸做出响应.例如,在触摸时我重新加载了集合视图的单元格.然后,此单元格可见,而其余的集合视图为黑色.

class ZoomInCircleViewTransition: NSObject, UIViewControllerAnimatedTransitioning, UIViewControllerTransitioningDelegate {

    var transitionContext: UIViewControllerContextTransitioning?

    func transitionDuration(transitionContext: UIViewControllerContextTransitioning?) -> NSTimeInterval {
        return 0.6
    }

    func animateTransition(transitionContext: UIViewControllerContextTransitioning) {
        self.transitionContext = transitionContext

        guard let toViewController: UIViewController = transitionContext.viewControllerForKey(UITransitionContextToViewControllerKey) else {
            return
        }

        guard let fromViewController = transitionContext.viewControllerForKey(UITransitionContextFromViewControllerKey) else {            return
        }

        guard let fromViewTransitionFromView = fromViewController as? TransitionFromViewProtocol else {
            return
        }



        let imageViewSnapshot = fromViewTransitionFromView.getViewForTransition()

        let endFrame = CGRectMake(-CGRectGetWidth(toViewController.view.frame)/2, -CGRectGetHeight(toViewController.view.frame)/2, CGRectGetWidth(toViewController.view.frame)*2, CGRectGetHeight(toViewController.view.frame)*2)

        if let containerView = transitionContext.containerView(){
            containerView.addSubview(fromViewController.view)
            containerView.addSubview(toViewController.view)
            containerView.addSubview(imageViewSnapshot)
        }


        let maskPath = …
Run Code Online (Sandbox Code Playgroud)

ios swift

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

NSPredicate:将CONTAINS与IN结合使用

我在CoreData中有一组用户,在我的应用程序中有一个搜索字段.用户具有属性名字和名称.

目前我有一个谓词"user.name CONTAINS [c]%@ OR user.firstname CONTAINS [c]%@"

这一直有效,直到用户输入"john smith"这样的全名.即使他输入"john sm",也应找到John Smith-Object.

将搜索项的数组(IN)与CONTAINS组合起来的谓词是什么?

core-data nspredicate

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

iOS:删除 UIPageControl 中的填充

我有一个兼容 iOS 12 到 14 的应用程序,但页面控制有问题。在 iOS 14 上,它有一个巨大的填充,这是旧版 iOS 版本中没有的。界面生成器也显示此填充。我的问题是我不希望这样,因为我的页面控件未居中,而是在用户界面中左对齐。

在此输入图像描述

如何删除填充,使其在所有 iOS 版本上看起来都相同?

html ios swift

9
推荐指数
2
解决办法
1861
查看次数

Realm在更新多个对象时变慢

在我的应用中,用户可以在集合视图中选择多个联系人.当他选择属性"isSelected"时,我将设置为true,并且collectionview刷新所选单元格.在这里,我可以识别选择和单元格突出显示之间的小延迟.但是在下一步中,我创建了一个包含所选联系人的组,最后我将属性"isSelected"设置为false.这需要50个对象(5秒)的不可接受的时间量并且需要调整.

这是我取消选择所有选定联系人的代码:

for contact in self.selectedContacts {
            try! self.realm.write{
                contact.isSelected = false;
                self.realm.add(contact, update: true)
            }
        }
Run Code Online (Sandbox Code Playgroud)

是否可以立即执行批量更新?

realm ios swift

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

SwiftUI:在 ViewModel 中预览数据

我从从 web 加载数据的 viewModel 加载我的数据。问题:我想设置一些预览示例数据以在预览窗口中包含内容。目前我的预览包含一个空列表,因为我不提供数据。

我怎样才能做到这一点?

struct MovieListView: View {

    @ObservedObject var viewModel = MovieViewModel()

    var body: some View {
       List{
        ForEach(viewModel.movies) { movie in
                MovieRow(movie: movie)
                    .listRowInsets(EdgeInsets())
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        MovieListView()
    }
}

class MovieViewModel: ObservableObject{

    private let provider = NetworkManager()

    @Published var movies = [Movie]()

    init() {
       loadNewMovies()
    }

    func loadNewMovies(){
         provider.getNewMovies(page: 1) {[weak self] movies in
                   print("\(movies.count) new movies loaded")
                   self?.movies.removeAll()
            self?.movies.append(contentsOf: movies)}
    }
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui

8
推荐指数
3
解决办法
2042
查看次数