小编Pau*_*w11的帖子

在watchOS中使用environmentObject

我正在尝试environmentObject在watchOS6应用中使用,以将我的数据模型绑定到我的视图。

我已经在Xcode 11中创建了一个简单的独立Watch应用程序。

我创建了一个新DataModel

import Combine
import Foundation
import SwiftUI

final class DataModel: BindableObject {

    let didChange = PassthroughSubject<DataModel,Never>()

    var aString: String = "" {
        didSet {
            didChange.send(self)
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

在我的ContentView结构中,我使用@EnvironmentObject- 绑定此类

struct ContentView : View {

    @EnvironmentObject private var dataModel: DataModel

    var body: some View {
        Text($dataModel.aString.value)
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,我尝试将类的实例注入DataModel到环境中HostingController-

class HostingController : WKHostingController<ContentView> {
    override var body: ContentView {
        return ContentView().environmentObject(DataModel())
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到一个错误:

Cannot …
Run Code Online (Sandbox Code Playgroud)

swift apple-watch watchos swiftui watchos-6

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

应用内购买沙箱测试-您所在地区不支持购买

我通过应用内购买为乌克兰人开发了一个应用。当我在乌克兰位置添加沙盒测试仪并尝试购买时,我收到此警报

如果我使用其他地方,例如俄罗斯-那很好。我的应用程序适用于乌克兰人民,对此我感到不安。

有人知道如何解决此问题吗?

in-app-purchase ios

9
推荐指数
3
解决办法
1165
查看次数

NFCTagReader iOS没有点击didDetect方法

我正在做一个将NFCTagReader实现到xamarin.ios应用程序的POC.

https://developer.xamarin.com/samples/monotouch/ios11/NFCTagReader/

我从xamarin网站上获取了NFCTagReader并设置了所有相应的配置设置以访问标签阅读器.问题是,当我点击扫描时,按预期弹出"准备扫描"窗口,然后我扫描一个标签,它在屏幕上显示小刻度,表明它已找到,但它从未打破我的代码的DidDetect方法代表.它将命中DidInvalidate方法并为ReaderSessionInvalidationErrorUserCanceled提供代码.

我想念的任何想法.以下是我的代码段:

 partial void Scan(UIBarButtonItem sender)
    {
        InvokeOnMainThread(() =>
        {                
            Session = new NFCNdefReaderSession(this, null, true);
            if (Session != null)
            {
                Session.BeginSession();
            }
        });

    }

    #endregion        

    #region NFCNDEFReaderSessionDelegate

    public void DidDetect(NFCNdefReaderSession session, NFCNdefMessage[] messages)
    {

        foreach (NFCNdefMessage msg in messages)
        {
            DetectedMessages.Add(msg);
        }
        DispatchQueue.MainQueue.DispatchAsync(() =>
        {
            this.TableView.ReloadData();
        });

    }


    public void DidInvalidate(NFCNdefReaderSession session, NSError error)
    {

        var readerError = (NFCReaderError)(long)error.Code;

        if (readerError != NFCReaderError.ReaderSessionInvalidationErrorFirstNDEFTagRead &&
            readerError != NFCReaderError.ReaderSessionInvalidationErrorUserCanceled)
        {
            InvokeOnMainThread(() =>
            {
                var alertController = UIAlertController.Create("Session Invalidated", error.LocalizedDescription, …
Run Code Online (Sandbox Code Playgroud)

nfc xamarin.ios ios xamarin core-nfc

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

点击/选择SceneKit中的节点(Swift)

我是iOS中的SceneKit和3D空间的新手.我目前正在制作一个简单的游戏,显示一个包含28个段的立方体(如果你想要的话,可以使用"迷你立方体").

我想通过点击它们来移动迷你立方体,但我无法理解如何选择特定节点(大立方体的子节点).

任何人都可以帮我或发布一个关于傻瓜的SceneKit教程的链接?我一直在寻找几天,并没有找到我正在寻找的东西.

干杯

hittest ios scenekit swift

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

UIViewController中的出口在viewdidload中为零

我有一个带有tableView插座的UIViewController

@IBOutlet weak var tableView: UITableView!
Run Code Online (Sandbox Code Playgroud)

当我尝试访问其中的tableView变量时viewDidload,抛出一个表示tableView的错误nil.

似乎在界面构建器中设置了所有内容.File's Owner的类设置为我的自定义类,并且tableView outlet也已设置.这里可能出现什么问题,为什么tableView变量在viewDidLoad中仍然是零?

interface-builder ios swift

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

NSMutableArray如何使用swift中的let添加对象

我在swift中创建了一个NSMutableArray,let当我在mutableArray中添加addObject时,它会添加它,即使我使用它let来分配一个常量.谁能解释一下如何let在swift中工作?如果它不允许您稍后添加值,那么以下代码如何工作?

let arr : NSMutableArray = [1,2,3,4,5]
arr.addObject(6)
println(arr)
Run Code Online (Sandbox Code Playgroud)

nsmutablearray ios swift

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

如何判断我的意图是否正在“快捷方式”应用程序中运行?

在我的应用程序中,我创建了一个SiriKit意图,该意图使用户可以搜索人。

如果他们直接从Siri触发了此意图,那么我想使用该搜索字符串打开我的应用程序并显示结果-我可以通过将.continueInApp和传递NSUserActivity给完成处理程序来实现。

但是,如果意图是Shortcuts应用程序流的一部分,那么我想将结果作为意图处理程序的输出传递-再次,我可以通过返回结果数组并返回.success到完成处理程序来做到这一点。

我的问题是我的处理程序如何确定运行它的上下文,以便它可以启动我的应用程序或在适当的情况下直接返回结果?

ios swift sirikit sirishortcuts

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

在iOS开发中是否有与Android产品风味相同的概念?

我们利用Android中的产品风格来保持源代码控制下的相同代码,但根据所选的风格有条件地将端点定位到dev/qa/production服务器.以供参考:

http://tools.android.com/tech-docs/new-build-system/build-system-concepts

例如,当我们想要在"dev"环境中测试一个新端点时,我们可以在src/dev/res/values/endpoints.xml其中有一个文件,其中的条目与XML相当urlbase = https://dev-endpoint.ourserver.com/v3/,并使用"dev"产品风格构建一个指向我们dev的APK环境.

iOS开发是否有相同的概念?

xcode ios

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

这可以在没有开发者ID的情况下测试推送通知吗?

在xcode 7 beta版之后,我可以在没有开发者ID的情况下在真实设备上安装应用程序.但是,我们可以这样做吗push notification?或者我们必须申请开发者ID?如果有方法,请参考链接.

push-notification ios

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

有没有办法在UIScrollview中嵌入UIView而不丢失iOS中的子视图约束?

我的ContentView中有太多子视图,现在我想要UIScrollview中的contentView,但是如果这样做,我将失去所有子视图的约束。在UIScrollview中的Editor-> Embed无法正常工作。

有什么方法可以将ContentView嵌入UIScrollView中吗?谢谢

objective-c uiscrollview ios

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