我想在NSMutableArray中添加一个对象:
NSLog(@"Object text: %@", object.text);
NSLog(@"Object: %@", object);
[appdelegate.objects addObject:object];
NSLog(@"Objects array size: %i", [appdelegate.objects count]);
Run Code Online (Sandbox Code Playgroud)
这是输出:
Object text: This is the text
Object: <Object: 0x6e762c0>
Objects array size: 0
Run Code Online (Sandbox Code Playgroud)
这怎么可能,我添加一个对象,在下一行,它仍然是空的.该NSMutableArray不是nil,因为那样会引发异常.
有谁猜?
当用户当前正在使用该应用时,我们的Android应用会出现问题,该应用会使用蓝牙扫描信标.应用程序在加载不同视图时从API加载数据.有时,当继续单击视图时,一个请求失败(超时),出现此错误:
java.net.SocketTimeoutException: failed to connect to www.examplehost.com/111.222.333.444 (port 80) after 15000ms
at libcore.io.IoBridge.connectErrno(IoBridge.java:169)
at libcore.io.IoBridge.connect(IoBridge.java:122)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:452)
at java.net.Socket.connect(Socket.java:884)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:117)
at com.android.okhttp.internal.http.SocketConnector.connectRawSocket(SocketConnector.java:434)
at com.android.okhttp.internal.http.SocketConnector.connectCleartext(SocketConnector.java:105)
at com.android.okhttp.Connection.connect(Connection.java:1331)
at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:1410)
at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128)
at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:466)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:447)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:353)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:468)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:410)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:532)
Run Code Online (Sandbox Code Playgroud)
(这是我们服务器的IP地址,替换为111.222.333.444)
这是一个超时(> 15秒),而之前的请求相当快.
我没有遇到其他设备的这个问题,只有在更新到Android 6.0.1时才能在Samsung S6上使用.因为应用程序位于前台,我认为它不是Doze或Standby(Android 6中的新功能),因为该应用程序正在被积极使用.但是当应用程序处于后台时可能会出现同样的问题(但很难测试).
LG Nexus 5(也使用Android 6.0.1)问题永远不会发生.有没有人知道我们应该在哪里寻找问题?提前致谢.
android bluetooth socket-timeout-exception ibeacon-android android-6.0-marshmallow
我在为我的iOS应用程序插入一个int到SQLite数据库时遇到问题.当我选择它时,它总是为零.
我正在创建这个表:
CREATE TABLE followedCategory(id TEXT(256) primary key, title TEXT(256), img BLOB, following INTEGER)
Run Code Online (Sandbox Code Playgroud)
最后一个param(following)导致了问题.我用这段代码插入记录:
DatabaseRecord *rec = [database query:@"INSERT INTO followedCategory VALUES (?1, ?2, ?3, ?4)" params:category.categoryId, category.title, UIImagePNGRepresentation(category.image), [NSNumber numberWithInt:1], nil];
[rec next];
Run Code Online (Sandbox Code Playgroud)
当我用这个查询表时:
DatabaseRecord *rec = [database query:@"SELECT COUNT(*) FROM followedCategory WHERE following = ?1" params:[NSNumber numberWithInt:1], nil];
[rec next];
return [rec intAtCol:0];
Run Code Online (Sandbox Code Playgroud)
我总是得到零结果.当我运行这个:
DatabaseRecord *recTest = [database query:@"SELECT following FROM followedCategory LIMIT 2"];
[recTest next];
NSLog(@"First following is %i", [recTest intAtCol:0]);
[recTest next];
NSLog(@"Second …Run Code Online (Sandbox Code Playgroud)