小编den*_*lor的帖子

如何确保在同一个后台线程上运行一些代码?

我在我的iOS Swift项目中使用领域.搜索涉及大数据集的复杂过滤器.所以我在后台线程上获取记录.

但是,realm只能在创建Realm的同一个线程中使用.我正在保存在后台线程上搜索Realm后得到的结果的引用.该对象只能从同一个后台线程访问

如何确保在不同时间将代码分发到同一个线程?

我按照建议解决了这个问题,但是没有用

let realmQueue = DispatchQueue(label: "realm")
    var orginalThread:Thread?

    override func viewDidLoad() {
        super.viewDidLoad()

        realmQueue.async {
            self.orginalThread = Thread.current
        }

        let deadlineTime = DispatchTime.now() + .seconds(2)
        DispatchQueue.main.asyncAfter(deadline: deadlineTime) {
            self.realmQueue.async {
                print("realm queue after some time")

                if self.orginalThread == Thread.current {
                    print("same thread")
                }else {
                    print("other thread")
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

输出是

realm queue after some time

other thread
Run Code Online (Sandbox Code Playgroud)

thread-safety realm grand-central-dispatch ios swift

7
推荐指数
2
解决办法
812
查看次数

想要在触摸事件上旋转min3d库的三维图像

min3d library从google.com 获得了示例代码和示例.

它工作得很完美,甚至可以处理变化后的图像.

现在我想.obj用触摸事件旋转文件,比如用手指触摸旋转汽车.因为它在gl.rotation方法中使用动画对象,这有点难以理解.我不知道怎么做,请给我解决方案..

3d android image-rotation min3d

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

在 Xcode 中双击 SHIFT 以“快速打开”

在 Xcode > Preferences > Key Bindings 我想为命令“Open Quickly..”注册键“SHIFT SHIFT”。它使我从 Intellij Idea 过渡得更快、更舒适。

但是 KeyBindings 不接受“SHIFT SHIFT”作为键……有人知道其他方式吗?

xcode keyboard-shortcuts hotkeys

6
推荐指数
0
解决办法
274
查看次数

#if canImport()未找到带有CocoaPods的框架

您好,这里是我们的Podspec,它具有default_subspec和可选的子规范(由于已经设置了默认值,因此不会使用)。该子规格具有更多功能,但需要额外的8MB大小...

`s.default_subspec = 'mainSDK'

s.subspec 'mainSDK' do |mainSDK|
mainSDK.vendored_frameworks = 'mainSDK.framework'
mainSDK.source_files = "mainSDK.framework/Headers/*.h"
end

s.subspec 'additionalSDK' do |additionalSDK|
additionalSDK.source_files = "additionalSDK.framework/Headers/*.h"
additionalSDK.vendored_frameworks =['additionalSDK.framework', 'mainSDK.framework']
end
Run Code Online (Sandbox Code Playgroud)

现在,在我们的mainSDK中,我们在#if canImport(additionalSDK)中包含了AdditionalSDK,然后在这些编译器标志之间提供了与AdditionalSDK 相关的代码,如下所示:

#if canImport(additionalSDK)
    //adding optional delegate
    class ViewController: UIViewController, OptionalDelagate
#else
    //no need for delagete
    class ViewController: UIViewController
#endif
Run Code Online (Sandbox Code Playgroud)

但是,客户端集成了我们mainSDK后,他认为,该框架是缺少模块:additionalSDK.framework

这怎么可能?我们已经在工作空间中将AdditionalSDK标记为可选。我们试图设置additionalSDK-weak_framework其他连接标志(构建设置),但这并没有帮助。

如果客户端集成了额外的 SDK,则所有框架都将正常运行,因为所有框架都已链接。

可选的依赖关系,没有的CocoaPods做工精良,它的CocoaPods的只是问题或我不知道如何配置它

`s.default_subspec = 'mainSDK'

s.subspec 'mainSDK' do |mainSDK|
mainSDK.vendored_frameworks = 'mainSDK.framework'
mainSDK.source_files = "mainSDK.framework/Headers/*.h" …
Run Code Online (Sandbox Code Playgroud)

ios ios-frameworks cocoapods podspec swift

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

在 Swift 5 中更改 Lottie AnimationView 大小

我正在尝试在我的应用程序中实现 Lottie AnimationView,但在调整视图大小时遇到​​问题。

我就是这样setup/constrainAnimationView

@objc func showAnimationTapped(){



    let logoAnimation = AnimationView(name: "StrokeAnimation")
    logoAnimation.contentMode = .scaleAspectFit
    self.view.addSubview(logoAnimation)

    logoAnimation.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
    logoAnimation.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
    logoAnimation.heightAnchor.constraint(equalToConstant: 200).isActive = true
    logoAnimation.widthAnchor.constraint(equalToConstant: 200).isActive = true

    logoAnimation.play()

}
Run Code Online (Sandbox Code Playgroud)

问题是 XCode 打破了所有约束并且AnimationView错误地放置/缩放。我还检查了View HirarchyAnimationView实际上覆盖了整个屏幕...也尝试过,CGRect但这并没有改变任何东西。

如何在 Swift 5 中调整动画大小/约束动画?

我找不到关于这个主题的任何内容..我感谢每一个帮助!

也许我的 AE 文件有问题,因为当我在Lottiefiles.com上预览它时,“描边”与我的 AE 文件中的动画不同。

不过我也用直接来自 Lottie 的文件进行了测试,这导致了同样的问题......

所以也许有 Swift/Lottie/AfterEffects 专家可以在这里帮助我:)

这是我的AE 文件+ JSON 文件,以便更好地理解。如果有任何不清楚的地方,请告诉我。

json ios autolayout swift lottie

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

Android Gallery仅限文字

我研究了API演示,他们有一个画廊示例,其中仅显示文本,代码仅使用Cursor,但是我想使用String数组。我如何才能使用它?这是API演示中的示例代码:

        Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
    startManagingCursor(c);

    SpinnerAdapter adapter = new SimpleCursorAdapter(this,
    // Use a template that displays a text view
            android.R.layout.simple_gallery_item,
            // Give the cursor to the list adatper
            c,
            // Map the NAME column in the people database to...
            new String[] {People.NAME},
            // The "text1" view defined in the XML template
            new int[] { android.R.id.text1 });
Run Code Online (Sandbox Code Playgroud)

android gallery

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

iOS 应用程序测试本地化翻译是否具有相同的键

在我的 iOS 应用程序中,我有本地化文件,例如 Localizable.strings。我想检查它们是否具有相同的键,并且每个本地化中都没有遗漏的键。

我想过在单元测试中执行这个。

  1. 单元测试是否适合于此?也许有更简单的工具呢?
  2. 如何完成单元测试?

我在5 年前的Obj-C https://www.cocoanetics.com/2013/03/localization-unit-test/中找到了关于这个主题的文章。也许可以使用其他东西?

shell xcode localization ios swift

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

Swift 4 - UIActivityViewController 共享到 Outlook 主题和标题

我使用UIActivityViewController 到共享文本到Outlook,一切正常,除了两件事情,一个我不能设置一个主题线和两条我不能设置一个标题的,我分享,我的文字是HTML表,它是当前显示我的实现中的第一部分(见截图)虽然我想显示一个预览标题。

有没有办法设置标题和设置主题

这是我的代码:

let activityViewController = UIActivityViewController(activityItems : [htmlString], applicationActivities: nil)

activityViewController.popoverPresentationController?.barButtonItem = self.shareButton

self.present(activityViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

我试图这样设置主题:

activityViewController.setValue("This is my subject", forKey: "subject")
Run Code Online (Sandbox Code Playgroud)

但它没有用

我究竟做错了什么?

这是我正在谈论的标题的屏幕截图:

在此处输入图片说明

但它没有用

ios uiactivityviewcontroller swift

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

Alamofire 5类型“Request”没有成员“authorizationHeader”

更新到 Alamofire 5 后,“Request.authorizationHeader(用户:字符串,密码:字符串)”方法显示错误。

Error:- Type 'Request' has no member 'authorizationHeader'
Run Code Online (Sandbox Code Playgroud)

代码:

    // Safely unwrap token
    guard let safeHeader = Request.authorizationHeader(user: consumerKey!, password: consumerSecret!) else {
        return nil
    }
Run Code Online (Sandbox Code Playgroud)

ios swift alamofire

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

TypeError:JSON对象必须是str,而不是Python 3.4的"Response"

我收到此错误,我无法弄清楚问题是什么:

Traceback (most recent call last):
  File "C:/Python34/Scripts/ddg.py", line 8, in <module>
    data = json.loads(r)
  File "C:\Python34\lib\json\__init__.py", line 312, in loads
    s.__class__.__name__))
TypeError: the JSON object must be str, not 'Response'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import requests, json

search_q = input('Enter query: ')

r = requests.get('https://api.duckduckgo.com/?q=%s&format=json&pretty=1' % search_q)

if r.status_code == requests.codes.ok:
    data = json.loads(r)
    node = data['RelatedTopics']['Result']
    print (str(node))
else:
    bad_r.raise_for_status()
Run Code Online (Sandbox Code Playgroud)

python json python-3.x raspberry-pi

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