【问题标题】:How to Use BOOL in IBACTION IOS如何在 IBACTION IOS 中使用 BOOL
【发布时间】:2011-12-23 08:21:30
【问题描述】:

我需要使用以下给定的 -(BOOL) 方法连接 imap 电子邮件服务器

点击连接按钮时如何在 IBACTION 中调用此方法?

- (BOOL) connectToHost: (NSString*) hostname
{
    socket_ = socket(AF_INET, SOCK_STREAM, 0);
    if (socket_ < 0) {
        NSLog(@"socket");
    }

    struct sockaddr_in addr;
    memset(&addr, 0, sizeof(addr));
    addr.sin_family = AF_INET;
    addr.sin_port = htons(993);

    struct hostent* host = gethostbyname([hostname UTF8String]);
    unsigned int** ptr = (unsigned int **) host->h_addr_list;
    while (*ptr != NULL) {
        addr.sin_addr.s_addr = *(*ptr);

        if (connect(socket_, (struct sockaddr *) &addr, sizeof(addr)) == 0) {
            break;
        }

        ptr++;
    }
    if (*ptr == NULL) {
        NSLog(@"connect");
    }

    return [[self readLine] isEqualToString: @"* OK"];
}

【问题讨论】:

  • 只需使用 IBACTION 制作一个典型的点击方法,然后从内部调用 connectToHost。

标签: objective-c ios methods boolean ibaction


【解决方案1】:

...从其他方法调用它?

- (IBAction) connectButtonClicked:(id)sender {
    [self connectToHost:@"Your host name goes here, variable _or_ constant! :D"];
}

【讨论】:

  • 如果BOOL 评估为假,您可能需要做一些事情,例如显示UIAlertView 通知用户连接失败。
  • [self connectToHost:@"你的主机名放在这里,变量 or 常量!:D"]; 这只需要一个参数,即主机名,我从文本字段“imap.gmail.com”中获取主机名,所以我的代码就像 [self connectToHost:@"imap.gmail.com"] 当我放置断点时,我看到它是终止于上述代码 if (connect(socket_, (struct sockaddr *) &addr, sizeof(addr)) == 0) {break; 你有什么想法或建议来解决它吗?
  • @SpaceDust:不,我建议你为此创建一个新问题,因为这是一个完全不同的问题。
猜你喜欢
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
  • 2016-08-07
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多