我正在寻找有关在iPhone上对某些静态数据实施全文搜索的最佳方法的建议.
基本上我有一个包含网站离线版本的应用程序,大约50MB的文本,我希望用户能够搜索术语.我想我应该以某种方式构建一个表("word",reference_to_file_containing_word)或其他东西,把它放入Core Data或只是sqlite,索引"word"列,然后让搜索工具在表中搜索搜索词并取术语或其他东西的结果集的交集.
这不会让人们搜索短语,但这很容易,也可能不会太慢.
我想为此使用现有的SDK功能.我应该使用Core Data还是sqlite?
有没有人对如何做到这一点有任何其他想法?
我是第一次使用iPhone应用程序,我正在为我的客户开发应用程序,该应用程序希望将此应用程序分发给仅与其业务相关的一组人员,并且仅作为免费应用程序.这是一个不适合普通用户的应用程序,因此我们绝对不希望此应用程序在Apple AppStore中公开列出,而是我们希望私下将应用程序分发给一群人.就像向他们发送通过电子邮件或其他东西下载应用程序的链接.他们点击它并下载应用程序.但是在Apple中我读到了两个程序,如标准程序和企业程序.标准的将公开列出我们不想要的应用程序,
任何人都可以帮我回答以下问题吗?1.如果我们使用标准程序,我们如何通过某些AppStore链接限制应用程序可见,我们将通过电子邮件将该链接发送给我们的用户.2.如果我们使用Enterprise Program,我们可以在Apache + PHP + Linux环境中进行简单设置,即不涉及MS Exchange服务器.
谢谢,Sameer.
首先,我不是在谈论图标库或模型工具/库.
我熟悉人们创建的各种图标库,但除了UICatalog等示例代码中的东西之外,我想知道是否有人知道有人创建了自定义按钮位图库(可伸缩按钮图像),滑块处理/跟踪位图等基本上是位图,用于为那些允许您指定此类位图的控件(如按钮和滑块)自定义标准控件的外观.
我也对任何photoshop教程/模板/用于创建可伸缩的自定义按钮图像,滑块部件的位图等感兴趣(恐怕我不是一个巨大的PS神或任何东西.)
是否有人知道任何这样的资源用于理解标准控件?
我有一个基本上是嵌入在UIWebView中的离线网站.我已经创建了一个样式表来在iPhone屏幕上很好地格式化所有内容,但我需要不同的格式来更好地利用iPad的屏幕.
我尝试使用代码简单地将不同的样式表复制到位,但这涉及修改应用程序包,这是不鼓励的,或者在这种情况下,只是不起作用.
任何人都可以想到根据应用程序是在iPhone还是iPad上运行而加载不同样式表的方法?我有成千上万的HTML文件与网站同步,因此我无法轻易修改所有这些文件.我需要一些方法来更改使用javascript加载的样式表或将css文件移动到某个位置.
我还应该提一下,这是一个通用的应用程序,几乎完全相同的代码(和略有不同的nib文件)在两者上运行.
使用Cocos2d for iPhone实现可扩展的可缩放游戏地图的最佳方法是什么.它会像Mobile Safari一样,但游戏地图不完全适合屏幕.或者喜欢它如何用愤怒的小鸟,剪绳等.
这不是一个侧滚动游戏,只是一个可以放大/缩小的固定游戏区域.
我是新手,如果有这方面的教程会很棒.
谢谢
我知道如何解决这个问题,但是我不理解为什么这不起作用.我有一个使用Core Data的UIViewController子类,因此它需要NSManagedObjectContext.控制器从nib文件加载,它位于选项卡控制器内的导航控制器下.
我尝试在initWithCoder和viewDidLoad中执行此操作,由于某种原因它不起作用:
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
self.managedObjectContext = [[appDelegate managedObjectContext] retain];
Run Code Online (Sandbox Code Playgroud)
出于某种原因,managedObjectContext返回nil,当我稍后尝试创建托管对象时,我得到了这个:
***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'+ entityForName:无法在此模型中找到名为'LogRecord'的实体.
当您的上下文为零或无法加载模型(或实际上缺少实体)时,您获得的是什么.
如果我在saveLogEntry方法(创建托管对象并保存上下文)的顶部执行完全相同的操作,那么它可以正常工作.
如果我执行Recipes示例应用程序所做的事情:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
loggingViewController.managedObjectContext = self.managedObjectContext;
// Standard stuff
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)
(loggingViewController是app delegate中的IBOutlet).
有谁知道这里可能会发生什么?如果"太早"完成它似乎失败,但特别是使用viewDidLoad我希望它能够工作,因为我认为这是在调用addSubview之后发生的.
我有兴趣使用rangeOfString和一些通配符作为搜索字符串的一部分.
例如,如果我有几个字符串,如"244px"和"356px",我想将所有这些字符串转换为"320px".有没有办法可以使用通配符来获得理想的结果?
我刚刚更新了我的应用程序,因此它是一个通用应用程序.这样做我UIPopoverController在某个地方增加了支持.现在该应用程序似乎在3.1.3 iPhone/iTouch设备上崩溃:
OS Version: iPhone OS 3.1.3 (7E18)
Report Version: 104
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x00000001, 0xe7ffdefe
Crashed Thread: 0
Dyld Error Message:
Symbol not found: _OBJC_CLASS_$_UIPopoverController
Run Code Online (Sandbox Code Playgroud)
我没有得到的是,如果硬件是iPad,我只会尝试调用UIPopoverController:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:btc];
CGSize popoverSize = { 300.0, 500.0 };
popover.delegate = self;
popover.popoverContentSize = popoverSize;
self.bmPopover = popover;
[popover release];
[self.bmPopover presentPopoverFromBarButtonItem:self.bmBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
} else {
[self presentModalViewController:nav animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
我确实有一个iVar和一个UIPopoverController声明类型的属性但我不希望这会在运行时引起问题,如果我实际上没有尝试在类中调用方法.
我不应该做什么来确保UIPopoverController在不支持时系统不会尝试在运行时链接?
我正在使用核心数据,我有一个名为LogRecord的实体.在其他地方,使用以下对象填充对象:
LogRecord *rec = [NSEntityDescription insertNewObjectForEntityForName:@"LogRecord"
inManagedObjectContext:managedObjectContext];
[rec timestampNow];
rec.moodType = [NSNumber numberWithUnsignedInteger:i];
rec.moodValue = value;
NSError *error = nil;
if (![rec.managedObjectContext save:&error]) {
[DataUtil displayFatalError:error message:@"Failed to save log entry"];
errors++;
}
Run Code Online (Sandbox Code Playgroud)
在使用此代码后,我已经检查过底层的sqlite数据库中有记录.
但是,当我尝试使用以下方法查询数据时:
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController == nil) {
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"LogRecord"
inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timestamp" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// nil for section name key …Run Code Online (Sandbox Code Playgroud) 我似乎遇到了一个非常奇怪的问题,只有在尝试将新的NSManagedObject插入新的部分时才会出现这个问题.基本上我的部分是几天,单个细胞与时间相关联.当我将一个对象移动到当前没有与该日期相关联的另一个对象(表格行)的那一天时,该表需要创建一个新的部分并移动该行.而不是正确发生这种情况我得到以下内容:
严重的应用错误.在调用-controllerDidChangeContent:期间,从NSFetchedResultsController的委托中捕获到异常. * - [NSMutableArray removeObjectAtIndex:]:索引1超出边界[0 .. 0] with userInfo(null)
插入一个当前没有其他对象的新对象似乎工作正常.
问题似乎在这个代码中的某个地方,但我似乎无法弄清楚它有什么问题. controller:didChangeSection:...似乎首先使用插入controller:didChangeObject:...调用,然后使用NSFetchedResultsChangeMove调用删除.所以顺序是:
NSFetchedResultsChangeInsert(在didChangeSection中)NSFetchedResultsChangeDelete(在didChangeSection中)NSFetchedResultsChangeMove(在didChangeObject中)
/**
Delegate methods of NSFetchedResultsController to respond to additions, removals and so on.
*/
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
// The fetch controller is about to start sending change notifications, so prepare the table view for updates.
[self.plainTableView beginUpdates];
}
- (void)controller:(NSFetchedResultsController *)controller
didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath
forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath {
UITableView *tv = self.plainTableView;
switch(type) {
case NSFetchedResultsChangeInsert:
[tv insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
case …Run Code Online (Sandbox Code Playgroud) 我有一个刺痛,我想用X替换所有字符(特殊字符除外).我的意思是如果我有一个字符串str = mac,iphone和ipad是苹果的产品
theis应该转换为
str = XXX,XXXXXX&XXXX XXX XXXXXXXX XX XXXXX
我知道这可以通过找到所有特殊字符并记下它们的位置然后替换除了这些特殊字符之外的所有其他字符来完成但是有这么多特殊字符我应该逐个检查它们吗?或者是否有任何其他方法来识别它们
请帮忙
iphone ×11
cocoa-touch ×4
core-data ×4
ipad ×3
cocoa ×2
ios ×2
objective-c ×2
app-store ×1
css ×1
indexing ×1
javascript ×1
pan ×1
photoshop ×1
search ×1
sqlite ×1
string ×1
uitableview ×1
uiwebview ×1
xcode ×1
zoom ×1