小编Ben*_*ams的帖子

SKProductsRequestDelegate失败

SKProductsRequestDelegate有一个方法:

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
Run Code Online (Sandbox Code Playgroud)

通常,我发现这些类型的代表将有几种处理多个案例的方法,而不仅仅是成功.例如:

-(void) connection:(NSURLConnection *)connection didFailWithError:(NSError *) error
Run Code Online (Sandbox Code Playgroud)

如何检查此代码是否因某些原因失败,例如.用户离线了吗?

SKProductsRequest *productsRequest = [[SKProductsRequest alloc] ... ];
productsRequest.delegate = self;
[productsRequest start];
Run Code Online (Sandbox Code Playgroud)

iphone storekit in-app-purchase ios

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

与DropBox API和iOS同步的数据

我有一个iOS应用程序,它将数据存储在本地目录中.我希望能够在运行我的应用的多个设备之间同步这些数据.目前这是使用核心数据,但我希望必须更改为一些基于文本的文件存储系统,以使同步更容易.

我期待DropBox API会让这很简单,而且我可以告诉API在启动/保存时简单地同步我的数据文件夹的内容.然而,似乎DropBox API只不过是一种上传和下载文件的美化方式.

这个假设我错了吗?DropBox API实际上可以让文件夹中的文件文件同步变得容易吗?如果没有,是否还有其他服务甚至建议?同步很难 - 我希望DropBox能让它变得更容易.

iphone objective-c dropbox-api

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

UIWebView延迟加载本地内容

我在UIWebView中显示了少量本地内容,大约3段文本和1张100x100px图像.当UIWebView被推送到导航控制器时,在显示内容之前大约需要半秒钟.这发生在设备上,而不是模拟器中.显然UIWebView需要在显示内容之前做一些工作,但是在推出的视图出现之前我是否有某种方法可以做到这一点?我自己也没有运气.

这是我正在创建和推送包含UIWebView的视图控制器的地方:

ArticleViewController* viewController = [[ArticleViewController alloc] init];
viewController.article = article;
[viewController view]; //touch the view so it gets loaded
[viewController loadWebView]; //load the web view content
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
Run Code Online (Sandbox Code Playgroud)

这是loadWebView方法:

-(void)loadWebView {
    NSString *path = [[NSBundle mainBundle] bundlePath];
    NSURL *baseURL = [NSURL fileURLWithPath:path];

    NSString* content = article.content;

    NSString *html = [NSString stringWithFormat:@"\
                      <html><body style='background-color: transparent'><style type=""text/css"">body {font-family: helvetica; color: black; font-size: 10pt; margin: 10px 10px 10px 10px}</style>\
                      %@<div style='text-align:center'><a href='13443574_9709e4cf37.jpg?photographer=test' style='-webkit-tap-highlight-color:rgba(0,0,0,0);'><img src='13443574_9709e4cf37.jpg' height='160' width='230'></a></div></body></html>", content]; …
Run Code Online (Sandbox Code Playgroud)

iphone uiwebview

6
推荐指数
2
解决办法
3489
查看次数

AVPlayerViewController和AVQueuePlayer的下一个上一个按钮不起作用

我正在使用一个AVPlayerViewController来播放一些视频AVQueuePlayer.问题是上一个/下一个按钮似乎没有做任何事情.触摸这些按钮时,我找不到任何通知方式.我错过了什么吗?

我正在使用的代码非常简单:

self.player = AVQueuePlayer(items: playerItems)
self.playerViewController = AVPlayerViewController()
self.playerViewController?.player = self.player
self.presentViewController(self.playerViewController!, animated: false, completion: { () -> Void in
    self.playerViewController?.player.play()
})
Run Code Online (Sandbox Code Playgroud)

avfoundation ios

6
推荐指数
0
解决办法
1061
查看次数

从UILabel获取截断的文本

无论如何我可以获得UILabel文本的截断版本吗?

简而言之,我有一段文字,两个UILabels标签A,长2行,标签B,高度可变.标签A在标签B之上.想法是标签A显示文本段落的前两行,并且在某个用户动作时,标记B因为可见并显示文本的其余部分.

我无法确定标签B中应该包含哪些内容,因为我不知道标签A中显示的是什么.我还需要从标签A中删除"...".

注意:我意识到这有点令人费解,但有一些很好的理由,我不会混淆这个问题.

iphone objective-c uilabel

5
推荐指数
1
解决办法
5611
查看次数

处理iOS 8键盘扩展中的返回键

我正在使用iOS 8键盘扩展,目前当用户点击我的Return键时,我正在运行此代码:

[self.textDocumentProxy insertText:@"\n"];
Run Code Online (Sandbox Code Playgroud)

这在大多数地方都可以正常工作.但是,在"联系人"应用程序中,如果我编辑联系人,请选择第一个名称字段,然后按"返回",不会发生任何操作.它不会按预期移动到下一个字段.这与默认键盘形成对比,默认键盘会移动到下一个字段.

难道我做错了什么?

objective-c ios ios8

5
推荐指数
1
解决办法
1077
查看次数

用iPhone测量房间

我需要在iPhone应用程序中测量一个房间(如果可能的话),我正在寻找一些关于如何实现这一目标的想法.极端的准确性并不重要,但精确度低至1英尺会很好.我到目前为止的一些想法是:

  • 在房间里走动并使用GPS进行测量.不太可能足够准确,特别是对于iPod touch用户
  • 从麦克风发出声音并测量它们返回的时间.有一些应用程序已经执行此操作,例如PocketMeter.我怀疑这不是用户友好的,而且比实际更噱头.

有没有其他想法?

iphone measurement

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

自动旋转和多视图控制器

我正在创建一个iPad应用程序,该应用程序只能在纵向和移植倒置模式下工作.出于性能原因,在我的applicationDidFinishLaunching方法中,我创建了几个viewControllers,并将它们作为子视图添加到我的主窗口中.然后我隐藏了那些我不想马上看到的东西.没有标签栏或导航控制器.

我的问题是只有第一个viewController似乎正在接收旋转调用.我已经通过交换我将子视图添加到主窗口和NSLog的顺序来验证这一点.有什么办法可以强迫所有控制器接听电话吗?

我的一些视图被设计为覆盖另一个视图的顶部,但是后面的视图并不总是相同的 - 所以将覆盖视图放在单独的视图控制器中似乎是有意义的.我做了一些根本错误的事情,这就是为什么它不像我期望的那样行事?

编辑:这个问题的接受答案似乎表明我面临的确切问题:UIViewController旋转方法

编辑2:另一个确认只有"主"视图控制器的问题将收到旋转事件.是否真的需要将我的所有代码放入一个具有多个视图的视图控制器中?屏幕上有多个视图控制器?

iphone ipad autorotate

2
推荐指数
1
解决办法
4619
查看次数

忽略iOS高分辨率@ 2x文件

我有一个包含大量图像(1000+)的应用程序.我有一个数据库表,其中包含这些图像的所有文件名.使用基于此文件名按需加载图像UIImage* image = [UIImage imageNamed:...]

由于图像数量很多,我想以编程方式进行测试,以确保数据库中包含的所有图像实际上都存在于项目中.为了实现这一点,我从表中提取所有文件名,循环遍历每个文件名,运行上面的代码,并检查是否image != nil.这很好用.

问题是我想确认正常分辨率和高分辨率(@ 2x)图像都存在.如果存在高分辨率文件但是普通分辨率文件不存在,我的代码将不会检测到这一点.

有没有办法在没有运行此过程两次的情况下实现这一点,每种分辨率类型一次?我可以强制SDK忽略@ 2x文件吗?

iphone objective-c

2
推荐指数
1
解决办法
971
查看次数

无法两次添加同一商店

我目前正在开发一个使用Core Data的应用程序.我正在使用两个商店/配置,一个用于静态内容,一个用于用户内容.偶尔在启动时我会遇到一个崩溃说:"不能两次添加同一个商店".我无法跟踪它或经常重复它,所以我想知道是否有人可以提出任何见解?这只是一个在发布时会消失的开发错误(不太可能,我知道).您可以在下面的代码中看到创建持久存储的任何错误吗?

另外一件值得一提的事情是,我将所有核心数据访问代码都包含在单例类中.我想,有可能两个线程一起访问managedObjectContext非常接近,导致几乎同时访问persistentStoreCoordinator?

注意: sharedPaths是一个短路径名称数组,例如.@"Data_Static", @"Data_User" sharedConfigurations是一组配置名称,例如.@"Static", @"User"

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (_persistentStoreCoordinator != nil) {
    return _persistentStoreCoordinator;
}

NSString* documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSFileManager* fileManager = [NSFileManager defaultManager];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];    
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];

//load each store/configuration
for(int i=0; i<[sharedPaths count]; i++) {
    NSString* path = [sharedPaths objectAtIndex:i];
    NSString* configuration = nil;
    if([sharedConfigurations count] > 0) …
Run Code Online (Sandbox Code Playgroud)

iphone core-data objective-c

2
推荐指数
1
解决办法
2591
查看次数

MPMoviePlayerController prepareToPlay不使用HTTP Live Streaming

我正试图MPMoviePlayerController在模态视图控制器内使用对象播放HTTP直播视频.如果我像这样运行代码,一切正常.我收到MPMoviePlaybackStatePlaying通知,视频播放.

- (void)viewDidLoad {
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(moviePlayerPlaybackStateDidChange:)  name:MPMoviePlayerPlaybackStateDidChangeNotification  object:nil];

    NSURL *url = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
    self.moviePlayerController = [[[MPMoviePlayerController alloc] initWithContentURL:url] autorelease]; 
    self.moviePlayerController.view.frame = CGRectMake(0,0,320,416);
    self.moviePlayerController.controlStyle = MPMovieControlStyleNone;
    self.moviePlayerController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    [self.view addSubview:self.moviePlayerController.view];  
    self.moviePlayerController.fullscreen = NO;  
    [self.moviePlayerController play]; 
}
Run Code Online (Sandbox Code Playgroud)

我更喜欢使用该prepareToPlay方法,以便我可以显示加载指示器,并获得更好的体验.但是,我似乎无法让这个工作.没有MPMoviePlayerPlaybackStateDidChangeNotification被调用,流不播放.活动指标就在那里永远旋转着.

我已经确认它prepareToPlay会被调用,但之后似乎没有其他事情发生.我还确认此代码适用于本地电影文件.它似乎与HTTP Live Streaming失败了.谁能看到我做错了什么?

- (void)viewDidLoad {
    [super viewDidLoad];

    [self.activityIndicator startAnimating];

    [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(moviePlayerPlaybackStateDidChange:)  name:MPMoviePlayerPlaybackStateDidChangeNotification  object:nil];

    NSURL *url = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
    self.moviePlayerController = [[[MPMoviePlayerController alloc] initWithContentURL:url] autorelease]; …
Run Code Online (Sandbox Code Playgroud)

objective-c mpmovieplayercontroller http-live-streaming

2
推荐指数
1
解决办法
6456
查看次数