小编use*_*889的帖子

为什么UITextField成为FirstResponder返回NO?

这是我的代码:

while (true) {
    if ([identificationField becomeFirstResponder]) {

        NSLog(@"finally!");
        break;
    }
    else{
        if ([identificationField canBecomeFirstResponder]) {
            NSLog(@"can");
        }
        else{
            NSLog(@"cannot");
        }
        NSLog(@"%@", identificationField);
        NSLog(@"dadgum!!");

    }
}
Run Code Online (Sandbox Code Playgroud)

这是它记录的内容:

   2014-02-05 11:33:54.253 Store Test[22488:70b] can

   2014-02-05 11:33:54.254 Store Test[22488:70b] <UITextField:
   0xb5c89a0; frame = (10 1; 300 43); text = ''; clipsToBounds = YES;
   opaque = NO; autoresize = TM+BM; gestureRecognizers = <NSArray:
   0xb5cc7b0>; layer = <CALayer: 0xb5c8b40>>

   2014-02-05 11:33:54.254 Store Test[22488:70b] dadgum!!
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样做?如您所见,文本字段可以成为第一个响应者,它不会.

objective-c uitextfield becomefirstresponder ios

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

如何生成 JDBC 数据库 URL?

我今天已经研究了大约 3 个小时,我觉得我已经接近了,但是我有几个问题。到目前为止,我找到的最佳信息来源是:https : //stackoverflow.com/a/2840358,但它并没有回答我的所有问题。

一点背景:我使用的是 Microsoft SQL Server 2014,我已经验证 IP 地址 127.0.0.1 处于活动状态并启用了端口 1433。我在同一台机器上通过 SQL Server 程序连接到数据库没有问题,但我正在尝试通过我正在编写的 Java 程序进行连接,它当前出现以下错误:com.microsoft.sqlserver.jdbc.SQLServerException:端口号 1433/R2M_Database 无效。我对此感到困惑,因为我知道端口 1433 是正确的,并且我知道我要连接的数据库称为 R2M_Database。现在,这是我的问题以及我的源代码。

1.) “mysql”和“sqlserver”子协议之间有什么区别,我怎么知道使用哪个?(我很确定我应该使用 sqlserver,但以防万一)

2.) 如何确保我使用的是正确的主机名?(我很确定 127.0.0.1 / localhost 是我应该使用的那个,但是我如何能够从其他机器运行这个程序来访问数据库?)

3.) 是否有任何外部问题可能导致此问题,例如防火墙或密码要求?(我相当确定用户名和密码是正确的,因为它们是我用来在 Microsoft SQL Server 2014 中成功获得连接的用户名和密码)

编辑:

import java.sql.DriverManager;
import java.io.BufferedReader;
import java.io.FileReader;
import org.apache.ibatis.jdbc.ScriptRunner;

public class SQLTest {
    public static void main(String[] args){
        String script = "CreatePersons.sql";
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            new ScriptRunner(DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=R2M_Database", userName, password))
                    .runScript(new BufferedReader(new FileReader(script)));
        } catch (Exception e) { …
Run Code Online (Sandbox Code Playgroud)

java database sql-server jdbc

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

如何在UITableView中插入新单元格?

我正在尝试使用添加一行到tableview

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
Run Code Online (Sandbox Code Playgroud)

它抛出一个异常,我调用insertRowsAtIndexPaths:withRowAnimation:,它说

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
Run Code Online (Sandbox Code Playgroud)

它返回正确数量的行和节,但它在抛出异常之前从未进入cellForRowAtIndexPath.我也使用故事板进行此操作,并且我将tableView设置为具有静态单元格,因为大多数tableView实际上都具有静态单元格.我真的不想切换到动态原型,因为我不能使用我正在使用的IBOutlets和IBActions,而且我必须重新开始关于单元格的布局.有没有办法让我摆脱这个异常而不改变我的tableView有动态原型单元格?

编辑

在我发布之前的那一行是

[itemsInCurrentPurchase insertObject:itemName atIndex:0];
Run Code Online (Sandbox Code Playgroud)

应该更新数组.我在用

[itemsInCurrentPurchase count]
Run Code Online (Sandbox Code Playgroud)

对于我在节中的行数,它在更新后返回正确的数字.问题是甚至没有达到cellForRowAtIndexPath方法.在更新期间,还有在行数和可能导致此错误的单元格类型之间调用的其他内容吗?

iphone xcode objective-c ipad ios

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

如何验证文件在 iCloud 中是否存在?

我知道该文件存在,因为我可以下载它,但我需要检查它是否存在。我尝试过使用

[NSFileManager contentsOfDirectoryAtPath:error:]
Run Code Online (Sandbox Code Playgroud)

但它给了我空。我不明白为什么这是因为我仍然可以下载我正在寻找的文件。也许这是一个不正确的 URL,但我正在使用的 URL 是我在创建我要查找的 UIDocument 时打印的 URL。也许我使用了错误的方法?

编辑:

我也尝试过使用 NSMetadataQuery,我可以让它返回通知,但它永远不会有结果,即使我可以显式下载我正在查找的文件。

file objective-c nsfilemanager icloud

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