这是我的代码:
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)
有谁知道为什么会这样做?如您所见,文本字段可以成为第一个响应者,它不会.
我今天已经研究了大约 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) 我正在尝试使用添加一行到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方法.在更新期间,还有在行数和可能导致此错误的单元格类型之间调用的其他内容吗?
我知道该文件存在,因为我可以下载它,但我需要检查它是否存在。我尝试过使用
[NSFileManager contentsOfDirectoryAtPath:error:]
Run Code Online (Sandbox Code Playgroud)
但它给了我空。我不明白为什么这是因为我仍然可以下载我正在寻找的文件。也许这是一个不正确的 URL,但我正在使用的 URL 是我在创建我要查找的 UIDocument 时打印的 URL。也许我使用了错误的方法?
编辑:
我也尝试过使用 NSMetadataQuery,我可以让它返回通知,但它永远不会有结果,即使我可以显式下载我正在查找的文件。
objective-c ×3
ios ×2
database ×1
file ×1
icloud ×1
ipad ×1
iphone ×1
java ×1
jdbc ×1
sql-server ×1
uitextfield ×1
xcode ×1