小编shi*_*him的帖子

从Swift测试文件中调用Objective-C类

我正在实施单元测试。原始项目是用Objective-C编写的。

我创建了一个用Swift编写的新测试目标。

如何在测试文件中调用实际应用程序的Objective-C类?

我尝试做以下。

@testable import MyModule
Run Code Online (Sandbox Code Playgroud)

但是,这似乎仅在所有文件都在Swift中时才起作用,而对我而言并非如此。

我在项目设置中尝试了其他几项,但是这些似乎都不起作用。

我是否明显遗漏了一些东西?

class MyTests: XCTestCase {

    override func setUp() {
        super.setUp()
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }

    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    }

    func testExample() {
        let vc = HomeViewController() //this line is failing. How do I expose this …
Run Code Online (Sandbox Code Playgroud)

unit-testing objective-c swift

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

在XCode 8中,在给定的XCTestCase类中以特定顺序运行测试方法的方法是什么?

在XCode 8之前,您可以通过按字母顺序排列给定XCTestCase类中的测试方法的名称来使单元测试以特定顺序运行(如本答案中所述).例如,测试将运行如:testA,testB,testC,testD等.

但是在XCode 8中,情况已不再如此.例如,我将首先运行名为test1,test2,test3,test4和test4的测试方法(参见下面的屏幕截图).然后我可以重新运行,test2将在下一次运行时首先运行.

在此输入图像描述

那么......如何在XCode 8上按顺序运行测试...?

xcode unit-testing objective-c xctestcase xcode8

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

无法打开文档"Main.Storyboard".无法识别的文件内容

从xcode 7更新到xcode 8之后,我面对的是没有故事板.任何人都可以提供帮助.里面没有显示任何错误.

storyboard ios xcode8

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

如何在改造android中的请求体中传递具有空值或空字符串的键

我需要传递密钥,即使没有值,因为密钥在服务器端是必需的.但是Retrofit在发送请求时删除了具有空值的键.如何使用Retrofit将没有值的密钥发送到服务器?

请求正文如下:

{
        "first_name":"testlogin",
        "last_name":"lastname",
        "username":"testman", 
        "password":"test123", 
        "email":"tester@test.com", 
        "address1":"123+test+way",
        **"address2":"",**
        **"address3":"",**
        "postal_code":"75023",
        "country":1,
        **"state":""**
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

android rx-android retrofit2

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

UILabel:adjustsFontSizeToFitWidth 不起作用

我想制作一个适合标签大小的字符串。下面的代码不会改变任何东西。我究竟做错了什么?

nameLabel.font = UIFont.systemFont(ofSize: 30)
nameLabel.adjustsFontSizeToFitWidth = true
nameLabel.text = "fjggfjghggiuhgughuohgoihiohiohiughiugyiugyu8ftufuyguoy80houhuiy78rt6drtyreruti"
nameLabel.numberOfLines = 1
nameLabel.minimumScaleFactor = 0.5
Run Code Online (Sandbox Code Playgroud)

uilabel ios

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

在 Xcode 上创建配置文件

我正在尝试在 iPhone 上调试应用程序 (Xamarin.Forms)。我已经在我的 Windows PC 上安装了 Visual Studio(我正在其上编写应用程序),并且在我的 Mac 上安装了 Visual Studio 和 Xcode。我也在我的开发者帐户上注册了 iPhone。

但是,我似乎还需要一个配置文件。但我见过的演练有与当前 Xcode 不同的屏幕。当我单击“首选项 - 帐户”时,我会看到我的帐户,但没有地方可以添加配置文件。

(iPhone 是否需要使用与 Mac 上(我拥有开发者帐户)相同的 Apple ID 登录?)

我该如何添加呢?

xcode visual-studio xamarin.ios ios xamarin.forms

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

与 UIActivityViewController 共享图像和文本到 Facebook Messenger 失败

\n

问题

\n\n

必须对下面的代码进行哪些更改才能确保 Messenger 能够很好地处理UIActivityViewController并共享图像和文本,或者至少共享图像?

\n
\n\n
\n\n

背景

\n\n

我用来UIActivityViewController分享我的应用程序中的文本和图像,并将它们发送到电子邮件、消息和其他共享应用程序。UIActivityViewController很棒,并且可以以简单且标准的方式与大多数应用程序\xe2\x80\xa6 配合使用,但是,我\xe2\x80\x99m 与 Messenger (Facebook Messenger) 存在问题,它不想\xe2\x80\x99 合作。

\n\n

在下面的代码中,我点击 aUIButton来拍摄屏幕的快照图像,将其转换为 .png,然后将准备好的图像 ( imageShare) 连同我准备的文本 ( textShare) 一起发送到UIActivityViewController. 这个简单的方法允许我的应用程序成功共享到电子邮件、消息和除 Messenger 之外的许多其他共享应用程序。

\n\n

(旁注,Facebook 只能分享准备好的图像 ( imageShare),但不能分享文本。)

\n\n
\n\n

问题

\n\n

UIActivityViewController这些是尝试与 Messenger共享时出现的问题:

\n\n
    \n
  • 分享时activityItems: [textShare, imageShare]

    \n\n
      \n
    • Messenger 仅发送共享文本。
    • \n
  • \n
  • 分享时activityItems: [textShare]

    \n\n
      \n
    • 共享到 Messenger 的选项甚至在UIActivityViewController.
    • \n …

optimization ios uiactivityviewcontroller facebook-messenger swift

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

UNUserNotificationCenter.current().getDeliveredNotifications 只返回空数组

我正在尝试检索仍显示在通知中心的所有已发送通知,但UNUserNotificationCenter getDeliveredNotifications(completionHandler:)无法正常工作。我可以获得所有待处理的通知,UNUserNotificationCenter getPendingNotificationRequests(completionHandler:)getDeliveredNotifications即使通知中心有通知,也只会返回 0 计数。

swift swift3 unnotificationrequest unusernotificationcenter

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

禁用自动更正类型不适用于 UITextfield

我创建了RegisterViewController电子邮件、密码和确认密码字段。

在电子邮件字段中,它始终在 QuickType 的键盘栏上显示建议电子邮件,但其他字段不显示任何内容。

它如何知道哪个字段是电子邮件或不是?我发誓我没有在文本字段中设置任何内容。我已经设置autocorrectionType = .no了我的基类文本字段,但它仍然在栏上显示建议。

谁能帮我解决这个问题吗?

显示建议栏的键盘屏幕截图

uitextfield ios swift

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

如何使用 SwiftUI 从 TabView 内的 ForEach 中删除项目?

我遇到了一个奇怪的 SwiftUI 崩溃,我不明白。我有一个 TabView,其中包含 3 个图像的列表。我试图通过点击屏幕上的按钮从列表中删除第一张图像,但我遇到了这个崩溃。

'NSInternalInconsistencyException',原因:'尝试删除并重新加载相同的索引路径(<NSIndexPath:0x968bfe135e5a98d1> {length = 2,path = 0 - 0})'以未捕获的NSException类型异常终止

如果我从代码中删除 TabView,它会按预期工作并删除第一项。以下是重现此崩溃所需的最少代码量。我还在这里创建了此代码的 Git 存储库 -> https://github.com/cameronhenige/TestCrash有人可以帮我弄清楚发生了什么吗?

import SwiftUI

struct ContentView: View {
    @StateObject var testViewModel = TestViewModel()
    
    var body: some View {
        GeometryReader { proxy in
            
            ScrollView {
                
                VStack(alignment: .leading, spacing:0) {
                    
                    TabView {
                        
                        ForEach(testViewModel.images, id: \.self) { image in
                            Image(image)
                        }
                        
                    }.tabViewStyle(PageTabViewStyle())
                    .clipShape(RoundedRectangle(cornerRadius: 15))
                    .padding()
                    .frame(width: proxy.size.width, height: proxy.size.height/2.5)
                    
                }
                Button(action: {
                    testViewModel.removeFirst()
                }) {
                    Text("Remove first item from list")
                }
                
            }
            
            
        }.frame(maxWidth: .infinity).background(Color.black) …
Run Code Online (Sandbox Code Playgroud)

swiftui swiftui-tabview

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