标签: protocols

Swift 委托从未被调用

我知道这个问题已经在论坛中存在,但我不知道为什么我的代表不起作用。顺便说一下,我是第一次和他们一起工作。

这是代码

视图控制器:

class ViewController: UIViewController, ContainerViewControllerDelegate{

    override func viewDidLoad() {
        super.viewDidLoad()

        let controller = ContainerViewController()
        controller.containerDelegate = self

    }

    func didScrollChangeAppearanceBarButtonItem(change: Bool) {
        if(change == true){
            print("true")
        }else{
            print("false")
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

容器视图:

protocol ContainerViewControllerDelegate {
     func didScrollChangeAppearanceBarButtonItem(change: Bool)
}

class ContainerViewController: UIViewController, UIScrollViewDelegate{

    var containerDelegate: ContainerViewControllerDelegate?

    func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

        if(velocity.y>0) {
            containerDelegate?.didScrollChangeAppearanceBarButtonItem(change: false)
            print("1")

        } else {
            containerDelegate?.didScrollChangeAppearanceBarButtonItem(change: true)
            print("2")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想做的事情:当我滚动时,我想向我的 ViewController 发送一个布尔值。当 bool == true 时我想做某事,当 bool …

delegates protocols ios uicontainerview swift

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

从 webhook 编辑不和谐消息

我想使用网络钩子(我正在使用)发送消息,然后编辑该消息。您可以通过 webhooks 编辑消息,但您需要消息 ID。通过 Webhooks 检索消息的唯一方法需要消息 ID。这个系统应该如何运作?我肯定错过了什么。

protocols discord

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

将空终止符附加到 C++ 字符串

为了实现某个协议的客户端需要对特定字符串进行空字节填充,我实现了一个用特定数量的空字节填充字符串的函数:

string padToFill(string s, int fill){
    int len = s.length();
    if (len < fill){
        for (int i = 0; i < fill - len; i++){
            s.append("\0");
        }
    }
    return s;
}
Run Code Online (Sandbox Code Playgroud)

然而,实际上,我从这个函数得到的结果与我作为参数得到的字符串相同。例如padToFill("foo", 5)isfoo和 not foo\0\0。即使 C++ 字符串也应该像处理任何其他字符一样处理空字节

如何实现所需的空填充?

c++ string protocols null-terminated

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

动态切换(http)s页面内容到安全协议(javascript)

我将动态更改Blogger上所有页面源中的协议.

例如,http://在以下项目上更改为https://:

  • <link rel="..." type="..." href="http://www.blogger.com/..." />
  • <script src="http://www.blogger.com/..."></script>
  • <iframe src="http://www.blogger.com/..."></iframe>
  • <a href='http://www.blogger.com/...'></a>
  • 如果可能的话,内部的javascript变量

javascript https protocols dynamic

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

JMS协议是文本或二进制文件

我想知道什么是JMS协议?它是像http或二进制的文本基础协议?这些协议的层次结构是什么?(RMI> JMS或......)

如果您向我介绍学习这些协议层次结构的好参考,我将感谢您.

RGDS

java jms protocols

0
推荐指数
2
解决办法
4677
查看次数

iOS在哪里定义了applicationWillEnterBackground?什么时候打电话?

可能是一个新手问题:我正在使用一些具有实现功能的遗留代码

- (void)applicationWillEnterBackground:(UIApplication *)application
Run Code Online (Sandbox Code Playgroud)

标题中没有对此方法的明确定义,因此我认为它是采用的协议(UIApplicationDelegate)的一部分,但它未包含在apple的文档中.

这种方法是否被称为应用程序生命周期的一部分?(事后该方法的名称非常类似于applicationDidEnterBackground,它被列为UIApplicationDelegate方法)

如果它被称为生命周期的一部分?

lifecycle xcode protocols ios

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

在运行时判断一个类是否符合特定的协议方法?

我试图告诉你是否有办法确定一个类是否符合运行时的特定(可选)协议方法.有没有办法检查这个?不希望在委托类中发送对不存在的委托方法实现的调用.

iphone protocols objective-c ios

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

iOS在协议中使用未声明的标识符?

我有两个视图控制器HomeViewController(以下称HVC)和AddActivityViewController(以下称AAVC).在AAVC中,我宣布了一个委托协议:

@protocol AddActivityViewControllerDelegate;
Run Code Online (Sandbox Code Playgroud)

并由此定义:

@protocol AddActivityViewControllerDelegate


-(void) addActivityViewControllerDidSave;

-(void) addActivityViewControllerDidCancel:(ListActivity *) activityToDelete;

@end
Run Code Online (Sandbox Code Playgroud)

接下来,我在HVC(委托)中实现了这两个方法,如下所示:

-(void) addActivityViewControllerDidSave
    {
        [self.moc MR_saveToPersistentStoreAndWait];
        [self.navigationController dismissViewControllerAnimated:YES completion:nil];
    }

-(void) addActivityViewControllerDidCancel:(ListActivity *) activityToDelete
    {
        [activityToDelete MR_deleteEntity];
        [self.navigationController dismissViewControllerAnimated:YES completion:nil];        
    }
Run Code Online (Sandbox Code Playgroud)

我收到此错误"使用未声明的标识符'addActivityViewControllerDidSave',即使它已在协议中明确声明.

我应该提一下,在此之前,我正在处理显然是"导入循环",导致"未声明的协议"错误.这个错误似乎已得到修复.

以下是HomeViewController.h文件中的@import语句:

#import <UIKit/UIKit.h>
#import "ListActivity.h"
#import "AddActivityViewController.h"
#import "TimedActivity.h"

@interface HomeViewController : UIViewController <AddActivityViewControllerDelegate>

@property (strong, nonatomic) IBOutlet UITableView *myTableView;

@property NSManagedObjectContext * moc;

- (IBAction)dumpMemory:(UIButton *)sender;
@end
Run Code Online (Sandbox Code Playgroud)

并从AddActivityViewController.h文件:

#import <UIKit/UIKit.h>
#import "ListActivity.h"

@protocol AddActivityViewControllerDelegate;


@interface AddActivityViewController : UIViewController

@property …
Run Code Online (Sandbox Code Playgroud)

protocols delegation objective-c ios

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

协议方法相互依赖

我遇到了这种奇怪的情况,我有两个协议,两个方法的参数都必须符合其他协议.听起来令人困惑,所以有些代码:

@protocol ProtocolB <NSObject>
@required

-(void)methodB:(id<ProtocolA>)parameter;

@end



@protocol ProtocolA <NSObject>
@required

-(void)methodA:(id<ProtocolB>)parameter;

@end
Run Code Online (Sandbox Code Playgroud)

编译器说:"找不到......的协议声明".根据首先使用的协议,它可以是ProtocolA或ProtocolB.将它们放在不同的文件中似乎并没有解决这个问题.

如果没有(主要的,可能复杂的)重新设计,我怎么能做到这一点?

protocols objective-c

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

使用节点js(自定义协议)创建简单的服务器

我(为了练习)创建了一个服务器,以处理客户端连接。主题是关于C编程的,但是我已经做到了。我想再次使用节点js来做。我不需要http服务器,只需一个处理原始cmd的简单模块。该协议是在主题内给出的,我将在我身边实现我的应用程序的逻辑。我只是node js编程的新手,它的主题很浅(大约5-6个命令)。你知道我可以从哪里开始吗?一个简单模块的名称/文档,还是仅用于处理客户端连接/命令读取的简约代码?(Cmd是简单的字符串,后跟\ n)。我已经在npm网站中进行搜索,但是我只是找到http的服务器或更复杂的东西,因此不需要太多功能。只是连接,原始格式的命令以及一些可以很好处理诸如连接丢失,

protocols light node.js server

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