小编rus*_*elf的帖子

在objective-c(iphone版)中观察者/观察者最好的方法是什么?

我习惯于编写Java Swing UI,如果你有一些属性发生变化,并且你希望你的UI更新,你将实现观察者/可观察模式.在Java中,您通常通过让您的类维护一个监听器列表来通知不同的事件.

我在Mac上玩过Objective-C,它有KVC和绑定,看起来非常好用,并且需要的代码更少.虽然iPhone SDK似乎没有这个功能,所以我的问题是:如果我有一个包含更改数据的类,那么我最好的方法是向该类注册一个UI组件,以便通知它需要显示的数据变化?

iphone cocoa objective-c

14
推荐指数
2
解决办法
2万
查看次数

如何阻止UIScrollView水平弹跳?

我有一个UIScrollView显示垂直数据,但水平组件不比iPhone的屏幕宽.问题是用户仍然能够水平拖动,并且基本上暴露UI的空白部分.我试过设置:

scrollView.alwaysBounceHorizontal = NO;
scrollView.directionalLockEnabled = YES;
Run Code Online (Sandbox Code Playgroud)

这有点帮助,但仍然不能阻止用户水平拖动.当然有一种方法可以轻松解决这个问题吗?

iphone cocoa-touch

14
推荐指数
5
解决办法
5万
查看次数

打开谷歌地图到巴士方向

我意识到你可以通过这样的方式打开谷歌地图应用程序准备好方向:

NSString* urlString = @"http://maps.google.com/maps?saddr=London+UK&daddr=Birmingham+UK";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: urlString]];
Run Code Online (Sandbox Code Playgroud)

但是我可以添加一个参数来自动切换到总线方向吗?Apple的开发者文档似乎没有提及任何相关内容:

https://developer.apple.com/iphone/library/featuredarticles/iPhoneURLScheme_Reference/Articles/MapLinks.html#//apple_ref/doc/uid/TP40007894

iphone google-maps

9
推荐指数
1
解决办法
5877
查看次数

在IB处理景观/肖像差异的最佳方法是什么?

我有一个支持横向和纵向观看的视图,当你从一个切换到另一个时,控件都会移动.我正在通过在用户旋转手机时设置每个控件的.center来实现此目的.问题是这很乏味,并且需要大量代码,并且似乎首先破坏了使用Interface Builder的目的.

我的问题是:在Interface Builder中是否有一种方法可以支持多个外观(一个用于纵向一个用于纵向)?如果没有其他人如何与IB这样做?你设置了2个视图吗?

编辑:只是为了澄清我的风景和肖像视图看起来不同,我不想直接变换,我实际上在横向模式下显示不同的数据

iphone cocoa-touch interface-builder

8
推荐指数
1
解决办法
5834
查看次数

如何在EclipseLink中配置查询缓存

我有一组状态,我希望在应用程序的生命周期中缓存,最好是在第一次调用它之后.我正在使用EclipseLink作为我的持久性提供程序.在我的EJB3实体中,我有以下代码:

@Cache
@NamedQueries({
    @NamedQuery(
        name = "State.findAll",
        query = "SELECT s FROM State s",
        hints = {
                @QueryHint(name=QueryHints.CACHE_USAGE, value=CacheUsage.CheckCacheThenDatabase),
                @QueryHint(name=QueryHints.READ_ONLY, value=HintValues.TRUE)
            }
    )
})
Run Code Online (Sandbox Code Playgroud)

这似乎没有做任何事情,如果我监视进入MySQL的SQL查询,它每次我的会话Bean使用这个NamedQuery时仍然会做一个选择.

配置此查询的正确方法是什么,以便只从数据库中读取一次,最好是在所有会话中读取?

编辑:我正在调用这样的查询:

Query query = em.createNamedQuery("State.findAll");
List<State> states = query.getResultList();
Run Code Online (Sandbox Code Playgroud)

java jpa eclipselink java-ee ejb-3.0

8
推荐指数
2
解决办法
6464
查看次数

GWT的托管模式码头从哪里运行?

我正在尝试在托管模式下运行时在后端java代码中调用Web服务.一切都很好,GWT RPC调用工作,我可以在服务器上看到它,然后一旦它尝试调用外部Web服务(使用jax-ws),jetty就会出现内部服务器错误(500).

我已经将日志一直转到ALL,但我仍然没有看到任何堆栈跟踪或导致此错误.我只得到一行关于请求标头和响应的500错误.

有没有人知道内部码头是否在某处保存了日志文件,或者我如何调试错误?

我在OS X 10.6.1上运行GWT 1.7

编辑:我知道我可以使用-noserver选项,但我真的很想知道这个东西在哪里生活!

gwt embedded-jetty

8
推荐指数
1
解决办法
5374
查看次数

Core Data支持带索引的UITableView

我正在尝试实现支持索引的Core Data支持的UITableView(例如:出现在侧面的字符,以及与它们一起出现的节标题).在没有Core Data的情况下,我没有遇到任何问题:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView;
Run Code Online (Sandbox Code Playgroud)

在没有使用索引的情况下实现由Core Data支持的UITableView也没有问题.

我想弄清楚的是如何优雅地将两者结合起来?显然,一旦索引和重新分区内容,就不能再使用标准的NSFetchedResultsController来检索给定索引路径的内容.所以我将索引字母存储在NSArray中,将我的索引内容存储在NSDictionary中.这一切都适用于显示,但在添加和删除行时我有一些真正的麻烦,特别是如何正确实现这些方法:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller;

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath;

- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type;

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller;
Run Code Online (Sandbox Code Playgroud)

因为它返回的索引路径与核心数据中的索引路径没有相关性.当用户添加一行时,我通过简单地重建我的索引NSArray和NSDictionary来添加工作,但是当他们删除一个时,执行相同操作会导致整个应用程序崩溃.

是否有一个简单的模式/示例我在这里缺少使所有这些工作正常?

编辑:只是为了澄清我知道NSFetchedResultsController是开箱即用的,但我想要的是复制像Contacts应用程序这样的功能,其中索引是该人名的第一个字母.

iphone core-data uitableview nsfetchedresultscontroller cocoa-design-patterns

8
推荐指数
1
解决办法
1万
查看次数

Android 2.1检测蓝牙音频连接/断开

我正试图找到一种方法来检测蓝牙耳机连接并断开Android 2.1的事件.我在API Level 11中看到有一些明确的,但我如何在API级别7中执行此操作?我只是想知道用户何时连接或断开能够播放音频的耳机或汽车音响,以便我可以暂停正在播放的声音.

android bluetooth playback

8
推荐指数
1
解决办法
5240
查看次数

在iPhone上从睡眠事件中醒来?

有没有办法检测iPhone在应用程序运行时是否从睡眠中醒来?例如:您的应用程序正在运行,用户锁定屏幕(或屏幕自动锁定),一段时间后用户解锁屏幕并向上弹出您的应用程序.有没有办法在那时获得一个事件或以某种方式检测它?

我试过搜索谷歌和这个论坛,但我似乎无法找到任何相关信息.

iphone cocoa-touch

7
推荐指数
2
解决办法
4104
查看次数

是(变量)与Objective-C中的if(变量!= nil)相同

我在我的iPhone项目中获得了一行EXC_BAD_ACCESS(SIGBUS):

if (timeoutTimer) [timeoutTimer invalidate];
Run Code Online (Sandbox Code Playgroud)

令我难过的是我不明白该行怎么会崩溃,因为if语句意味着要检查nil.我是否误解了Objective-C的工作方式,或者在崩溃语句中的行号有时会出现错误的行?

iphone objective-c

7
推荐指数
2
解决办法
8730
查看次数