我想从Apache Software Foundation 找到Solr的替代品.
对于那些不知道的人,Solr是一个企业搜索服务器.客户端应用程序使用类似于界面的Web服务来提交用于索引的文档以及执行搜索查询.Solr具有内置的其他功能,如缓存和复制.我相信它最初是由CNet开始的,然后是开源的.
我正在寻找可能被视为竞争对手的其他搜索服务器.
我正在制作一个iPhone应用程序,我希望保存应用程序的状态.这包括一个int属性,我将自己持久保存到文件中.我有它编写和工作,但我知道我做的方式是有点hacky,将int转换为String然后转换为NSData.任何人都可以提出更好的方法吗?
int someInt = 1;
NSString *aString = [NSString stringWithFormat:@"%d",someInt];
NSData *someData = [aString dataUsingEncoding:NSUTF8StringEncoding];
[someData writeToFile:[documentsDirectory stringByAppendingString:@"someFile"] atomically:YES];
Run Code Online (Sandbox Code Playgroud)
然后从磁盘读取它并将其放回int -
NSData* someData = [NSData dataWithContentsOfFile:[documentsDirectory stringByAppendingString:@"someFile"]];
NSString *aString = [[NSString alloc] initWithData:someData encoding:NSUTF8StringEncoding];
int someInt = [aString intValue];
Run Code Online (Sandbox Code Playgroud) 我正在构建一个包含一些HTML文本的表,所以我使用UIWebView作为自定义表格单元格的子视图.我已经遇到了一个问题 - 当我在表格中向下滚动时,UIWebViews需要更新一次.例如,我将在编号为1,2和3的行中查看单元格.我向下滚动到8,9和10.有一会儿,在单元格#8中可见的UIWebView的内容是来自单元#1的内容,单元#9中的内容是来自单元#2的内容,依此类推.
我了解到问题是UIWebViews只是缓慢地渲染文本.有人建议我尽快将内容预先加载到UIWebView中,而不是等到表收到cellForRowAtIndexPath.所以现在,我有一个Domain Object,它之前只有WebView的文本内容 - 但现在它实际上有一个UIWebView本身的引用.
但是现在UIWebView中的一些内容呈现,当我滚动表格时,UIWebView只显示为灰色框.如果我触摸灰色框,它将实际接收触摸并更新WebView - 例如,如果我触摸链接(我可能会或可能不会,因为该框是灰色的,这将是一个运气),将链接到的页面将被请求并正确显示.
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
// I suppose this isn't necessary since I am just getting it from the
// Domain Object anyway
content = [[UIWebView alloc] initWithFrame:CGRectZero];
content.backgroundColor = [UIColor blackColor];
[self addSubview:content];
[content release];
}
return self;
}
// called by cellForRowAtIndexPath
- (void)setMyDomainObject:(MyDomainObject*)anObject {
UIWebView *contentWebView = anObject.contentWebView;
int contentIndex = [self.subviews indexOfObject:content];
[self insertSubview:contentWebView atIndex:contentIndex];
}
Run Code Online (Sandbox Code Playgroud) 我不知道是不是因为我使用的是Mighty Mouse或者是什么,但是在使用iPhone模拟器时我会不小心打开慢动作.我怎么把它关掉?
出于某种原因,在我的开发周期中,我发现自己删除了我插入的NSLog语句以帮助调试.我真的不知道为什么我有这个习惯,我就是这样做的.
有时,在开发过程中,我会发现我遇到了以前遇到过的问题,然后最终重新添加了一个旧的NSLog语句.然后再删除它.
是否有任何理由删除NSLog语句?根据我离开一两次的经历,没有引起任何应用拒绝.而且,据我所知,当应用程序处于分发状态时,它们不会记录任何内容(如果我错了,请纠正我),它们似乎并没有伤害任何东西.是否有我应该担心的性能影响?
我正在检查iPhone应用程序 -
int var;
if (var != nil)
Run Code Online (Sandbox Code Playgroud)
它可以工作,但在X-Code中,这会生成警告"指针和整数之间的比较".我如何解决它?
我来自Java世界,在那里我很确定上面的陈述会因为赞美而失败.
这个包中的类的目的是什么?
我想在我的应用程序中使用Base64编码.当我在Eclipse中输入时,系统会提示我是否要导入名为"com.google.appengine.repackaged.com.google.common.util.Base64"的类
我找不到关于这门课的内容的任何文件.没有javadoc,或者没有在Google App Engine手册中提及(我可以看到).这是一种我不应该访问的"隐藏"API吗?
让我说我有一个UIImage我正在设置的UIButton.我想在Quicklook中查看它.但是哦不

我无法快速查看调试图像的内容.
但是我可以从LLDB做一些事情来获取图像,[getAppButton imageForState:0](好吧,如果它不是用于undoManager位,但我不能在这里或那里),但有没有办法快速查看?
我在堆栈跟踪中看到了这一点:
myorg.vignettemodules.customregistration.NewsCategoryVAPDAO.getEmailContentByID(I)Lmyorg/pushemail /模型/ EmailContent;
" (I)L"是什么意思?
我正在开发一个允许点对点连接的iPhone应用程序.据我所知,我可以选择使用GKPeerPicker还是GKSession.我不喜欢使用PeerPicker的想法,因为我想显示一个自定义界面,所以我决定使用GKSession,嘿,BONUS是它也适用于Wi-Fi,而Peer Picker则没有.
好的,问题是......如果用户同时关闭蓝牙和Wi-Fi怎么办?在Peer Picker中,有一个提示在没有离开应用程序的情况下打开蓝牙.GKSession没有它......但是等待一秒钟,似乎我甚至无法检查蓝牙是否打开了!
Carpe Cocoa声称没问题,只需使用Delegate的session:didFailWithError:方法.但是,正如它在评论中所解释的那样......似乎不再起作用了!根据我的经验,我同意.
是否有其他方法以编程方式检查蓝牙是否已打开?这是我应该利用Reachability的东西吗?或者它只是苹果尚未修复的错误?
更具体地说,我正在创建我的会话:
GKSession *aSession = [[GKSession alloc] initWithSessionID:nil
displayName:user.displayName
sessionMode:GKSessionModePeer];
self.gkSession = aSession;
[aSession release];
self.gkSession.delegate = self;
self.gkSession.available = YES;
[self.gkSession setDataReceiveHandler:self withContext:NULL];
Run Code Online (Sandbox Code Playgroud)
该类实现了GKSessionDelegate,我知道它正在工作,因为当我打开蓝牙时,委托方法被称为没问题.我已经实现了它们:
#pragma mark -
#pragma mark GKSessionDelegate methods
- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state {
if (GKPeerStateAvailable == state) {
[session connectToPeer:peerID withTimeout:10];
} else if (GKPeerStateConnected == state) {
// gets user
NSError *error = nil;
[session sendData:user.connectionData
toPeers:[NSArray arrayWithObjects:peerID,nil]
withDataMode:GKSendDataReliable error:&error];
if (error)
NSLog(@"%@",error);
} …Run Code Online (Sandbox Code Playgroud)