您可以在Objective-C中用C(C99标准)做什么?(如果你愿意,可以使用代码示例)
使用ksoap2 lib从android调用.net SOAP1.1 Web服务我遇到了对自定义对象进行强制响应的问题.例如,在httpTransport.call(soapAction,soapEnvelope)之后调用下面的代码是正确的.并在里面有数据.但我不能把它转移到SoapObject或Vector的特定对象,就像我在几个例子中看到的那样,我得到CastException或者什么都不简单.如果有人知道如何处理它,请帮助.
public StatusSetting[] GetAllStatuses(String installation){
StatusSetting[] statuses = null;
String methodName = "GetAllStatuses";
String soapAction = NAMESPACE + "/" + methodName;
SoapObject request = new SoapObject(NAMESPACE, methodName);
request.addProperty("installation", installation);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
AndroidHttpTransport httpTransport = new AndroidHttpTransport(SERVICE_URL);
try {
httpTransport.call(soapAction, soapEnvelope);
statuses = (StatusSetting[])soapEnvelope.getResponse();
} catch (Exception e) {
e.printStackTrace();
}
return statuses;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用GameKit将点对点蓝牙添加到iPhone射击游戏中,因此速度至关重要.我每秒发送大约40条消息,其中大多数都使用更快的GKSendDataUnreliable,所有消息都使用NSCoding进行序列化.在3G和3GS之间的测试中,这比我想要的速度慢了很多.我想知道我应该集中精力加快速度.
GKSendDataReliable慢多少?对于必须到达那里的少数数据包,发送GKSendDataUnreliable并让对等方发送确认以便我可以再次发送,如果我没有得到Ack,比如100ms,那么它会更快吗?
使用常规C数组创建NSData实例而不是使用NSCoding协议进行存档会更快多少?这个序列化过程(对于大约十几个浮点数)是否与对象创建/释放开销一样慢,或者发生特别缓慢的事情?
我听说(例如)发送四个单独的数据集比发送四倍大小的数据要快得多.我是否会通过发送单独的数据包来实现显着的节省,这些数据包在同一时间发生时并不总是在同一个数据包中聚集在一起?
我错过了还有其他蓝牙性能机密吗?
谢谢你的帮助.
我使用HttpURLConnection来做HTTP POST,但我总是得不到完整的响应.我想调试这个问题,但是当我逐步完成它的工作时.我认为这一定是一个时间问题,所以我添加了Thread.sleep,它确实使我的代码工作,但这只是一个临时的解决方法.我想知道为什么会发生这种情况以及如何解决.这是我的代码:
public static InputStream doPOST(String input, String inputMimeType, String url, Map<String, String> httpHeaders, String expectedMimeType) throws MalformedURLException, IOException {
URL u = new URL(url);
URLConnection c = u.openConnection();
InputStream in = null;
String mediaType = null;
if (c instanceof HttpURLConnection) {
//c.setConnectTimeout(1000000);
//c.setReadTimeout(1000000);
HttpURLConnection h = (HttpURLConnection)c;
h.setRequestMethod("POST");
//h.setChunkedStreamingMode(-1);
setAccept(h, expectedMimeType);
h.setRequestProperty("Content-Type", inputMimeType);
for(String key: httpHeaders.keySet()) {
h.setRequestProperty(key, httpHeaders.get(key));
if (logger.isDebugEnabled()) {
logger.debug("Request property key : " + key + " / value : " + httpHeaders.get(key));
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Spring将SLF4J记录器注入类中,如下所示:
@Component
public class Example {
private final Logger logger;
@Autowired
public Example(final Logger logger) {
this.logger = logger;
}
}
Run Code Online (Sandbox Code Playgroud)
我找到了这个FactoryBean课程,我已经实现了.但问题是我无法获得有关注射目标的任何信息:
public class LoggingFactoryBean implements FactoryBean<Logger> {
@Override
public Class<?> getObjectType() {
return Logger.class;
}
@Override
public boolean isSingleton() {
return false;
}
@Override
public Logger getObject() throws Exception {
return LoggerFactory.getLogger(/* how do I get a hold of the target class (Example.class) here? */);
}
}
Run Code Online (Sandbox Code Playgroud)
FactoryBean甚至是正确的方法吗?当使用picocontainers 工厂注入时,你会得到Type传入的目标.在guice中它有点棘手.但是你如何在Spring中实现这一目标?
我使用专有的脚本语言开发了非常恢复的代码,其中大多数配置都包含在代码本身中.
显而易见的问题是测试和生产环境之间代码本身的差异,而这正是我试图用GIT管理的.
由于我的测试环境非常不稳定,我想我可以在GIT中创建一个分支,同时进行更改(并在其中保留代码和测试配置),并且在代码被接受之后我将其合并到生产中.
好吧,当我要求git合并我的分支时,它可以很好地处理代码..但是配置也会被迁移,而且我必须逐个文件地打开,将其更改回原来的状态.
无论如何我可以禁用GIT的自动合并并威胁一切,因为代码冲突要手动与WinMerge合并或稍后?代码很简短,真的.因为无论如何我都要编辑它以应用配置......
ps:请注意,我不是问如何在git上配置WinMerge.我有这些工具.我的问题是如何始终在分支之间执行手动合并.
谢谢!
F.
我最近从Linux开发转向Windows开发.和我一样多的Linux爱好者,我不得不说 - C#是一种美丽的语言,Visual Studio非常棒,现在我已经给自己买了一个轨迹球,我的手腕已经不再使用鼠标了.
但有一件事我无法过去:成本.Windows 7,Visual Studio,SQL Server,Expression Blend,ViEmu,Telerik,MSDN - 我们为项目的每个开发人员讲了数千个!你肯定会得到一些钱 - 我的问题是,它值得吗?[并非每个开发人员都需要上述所有工具 - 但您是否听说过任何人在没有Visual Studio的情况下编写C#代码?我已经在Linux上从事过相当大的软件项目而无需为任何开发工具付费.
很明显,如果你已经是一个Windows商店,那么重新培训你所有的开发者都没有用.如果您正在寻找开发Windows桌面应用程序,那么您无法在Linux中执行此操作.但是,如果您正在开始一个新的Web应用程序项目,并且可以雇用您想要的任何语言专家的开发人员,您是否仍会选择Windows作为您的开发平台,尽管成本高昂?如果是,为什么?
更新:我不打算开始任何争论.我从答案/评论中获得了一些有价值的见解:
我偶尔会使用一个volatile实例变量,在这种情况下,我有两个线程读取/写入它并且不希望获得锁定的开销(或潜在的死锁风险); 例如,计时器线程定期更新在某些类上作为getter公开的int ID:
public class MyClass {
private volatile int id;
public MyClass() {
ScheduledExecutorService execService = Executors.newScheduledThreadPool(1);
execService.scheduleAtFixedRate(new Runnable() {
public void run() {
++id;
}
}, 0L, 30L, TimeUnit.SECONDS);
}
public int getId() {
return id;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题:鉴于JLS只能保证32位读取将是原子有任何一点曾经使用挥发性长时间?(即64位).
警告:请不要回复说使用volatile结束synchronized是预优化的情况; 我很清楚如何/何时使用,synchronized但有些情况volatile更可取.例如,在定义用于单线程应用程序的Spring bean时,我倾向于使用volatile实例变量,因为无法保证Spring上下文将初始化主线程中的每个bean的属性.
我期待从另一个字符串中搜索并替换已知字符串.我应该使用str_replace()还是preg_replace()?该字符串被替换将类似的东西[+qStr+],[+bqID+]或者[+aID+]它会被搜索类似这样的代码块:
<li> [+qStr+]
<ol class="mcAlpha">
<li><input type="radio" name="[+bqID+]" id="[+bqID+]_[+aID+]" value="[+aID+]" /><label for="[+bqID+]_[+aID+]">[+aStr+]</label></li>
</ol>
</li>
Run Code Online (Sandbox Code Playgroud)
我将使用MySQL查询的结果替换字符串,并且一次执行此操作或类似操作最多200次.哪个函数str_replace()或preg_replace()是最简单和/或最快的方法.
当我使用 Java HttpUrlConnection 联系 Web 服务时,它只返回 400 Bad Request (IOException)。如何获取服务器返回的 XML 信息;它似乎不在连接的 getErrorStream 中,也不在任何异常信息中。
当我针对 Web 服务运行以下 PHP 代码时:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.myclientaddress.com/here/" );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST,1 );
curl_setopt($ch, CURLOPT_POSTFIELDS,"username=ted&password=scheckler&type=consumer&id=123456789&zip=12345");
$result=curl_exec ($ch);
echo $result;
?>
Run Code Online (Sandbox Code Playgroud)
它返回以下内容:
<?xml version="1.0" encoding="utf-8"?>
<response>
<status>failure</status>
<errors>
<error name="RES_ZIP">Zip code is not valid.</error>
<error name="ZIP">Invalid zip code for residence address.</error>
</errors>
</response>
Run Code Online (Sandbox Code Playgroud)
所以我知道信息存在
java ×4
objective-c ×2
android ×1
bluetooth ×1
c ×1
c# ×1
casting ×1
cocoa-touch ×1
compare ×1
concurrency ×1
git ×1
iphone ×1
ksoap2 ×1
linux ×1
manual ×1
merge ×1
performance ×1
php ×1
regex ×1
slf4j ×1
spring ×1
str-replace ×1
volatile ×1
web-services ×1
windows ×1