小编Eya*_*yal的帖子

正确使用beginBackgroundTaskWithExpirationHandler

我对如何以及何时使用感到困惑beginBackgroundTaskWithExpirationHandler.

Apple在他们的示例中显示在applicationDidEnterBackground委托中使用它,以便有更多时间来完成一些重要任务,通常是网络事务.

在查看我的应用程序时,似乎我的大多数网络内容都很重要,当一个人启动时,如果用户按下主页按钮,我想完成它.

因此,beginBackgroundTaskWithExpirationHandler为了安全起见,包装每个网络事务(并且我不是在谈论下载大量数据,大多数是短xml)是接受/良好做法 吗?

network-programming objective-c multitasking ios background-thread

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

核心数据背景上下文最佳实践

我需要对核心数据执行大量的导入任务.
假设我的核心数据模型如下所示:

Car
----
identifier 
type
Run Code Online (Sandbox Code Playgroud)

我从我的服务器获取汽车信息JSON列表,然后我想将它与我的核心数据Car对象同步,这意味着:
如果它是一辆新车 - > Car从新信息创建一个新的Core Data 对象.
如果汽车已经存在 - >更新Core Data Car对象.

所以我想在后台进行导入,而不会阻止UI,而使用滚动显示所有汽车的汽车表视图.

目前我正在做这样的事情:

// create background context
NSManagedObjectContext *bgContext = [[NSManagedObjectContext alloc]initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[bgContext setParentContext:self.mainContext];

[bgContext performBlock:^{
    NSArray *newCarsInfo = [self fetchNewCarInfoFromServer]; 

    // import the new data to Core Data...
    // I'm trying to do an efficient import here,
    // with few fetches as I can, and in batches
    for (... num of batches ...) {

        // do batch import... …
Run Code Online (Sandbox Code Playgroud)

core-data objective-c nsmanagedobjectcontext ios

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

如何测试生产推送通知?

到目前为止,我使用了开发推送证书,推送通知效果很好.

现在我想将我的应用程序提交给Apple,因此我创建了一个生产证书并将其设置为"代码签名身份" - >"发布"

我还将.p12文件放在我的生产服务器中.
但推动现在不起作用.

当我从xcode运行时,它是否可以工作?或者从App Store下载应用程序时它会起作用吗?如果是这样我该怎么测试呢?

iphone objective-c apple-push-notifications ios

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

自动布局和"按下时隐藏底栏"

我的应用程序(简化)结构是这样的:

UITabBarController一个人UINavigationController拿着一个UITableViewController根视图控制器.

当点击其中一个表格视图控制器单元格时,我按下常规UIViewController(让它称之为VC)结束隐藏底部标签栏.(使用"按下时隐藏底栏"标志)

在故事板中,我UIView向VC 添加了一个看起来像底栏的常规子类,我使用自动布局将其固定到VC视图的底部.


我推VC时的问题需要一秒钟才能将此视图固定到底部,看起来像自动布局将其固定到底部,就像标签栏没有隐藏一样,一秒后它就会识别出标签栏是隐藏的将其移动到视图的真实底部.

我知道这不是最好的解释,所以我添加了一个非常简单的项目来证明这个问题.

objective-c storyboard uitabbarcontroller ios autolayout

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

c#在多线程服务器中使用Entity Framework

在多线程服务器中使用实体框架的最佳实践是什么?我正在使用实体框架ObjectContext来管理我的所有数据库操作,现在我知道这个上下文不是线程安全的,所以现在当我需要使用它来执行一些数据库操作时,我用lock声明来包围它是安全的.这是我应该怎么做的?

c# database multithreading entity-framework objectcontext

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

核心数据 - 如何获取具有最大值属性的实体

我有一个Person属性的实体personId(personId是唯一的)

如何获取max personId的Person?

(我想取这个人本身而不是财产的价值)

iphone core-data objective-c nsfetchedresultscontroller ios

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

如何使用iOS Reachability

我正在开发一个使用网络的iPhone应用程序.iPhone通过HTTP请求与我的服务器通信,应该可以在WiFi和3G上运行.
我目前NSURLConnection initWithRequest用来向我的服务器发送异步请求并获得响应(但我很快就会开始使用ASIHTTPRequest库)

我明白,对于这种应用程序(需要互联网连接的应用程序),我应该(必须?)使用Reachability.

在搜索网页并查看Apple的Reachability示例代码后,我仍然不了解一些基本内容:

可达性的主要目的是什么?

在Apple的示例中,他们检测到主机,WiFi和3G的网络问题,并向用户显示适当的消息.
这是Reachability的主要目的,向用户显示消息吗?或者我是否需要将其用于其他更实际的场景?例如,如果NSURLConnaction请求失败,我是否需要以某种方式使用Reachability重新发送请求?

可达性的正确使用是什么?

在应用启动时只使用一个实例,然后收听网络更改是否常见?或者我应该在每次网络请求之前检查自己的可达性状态?
是否足以使用reachabilityWithHostName或者我也需要reachabilityForLocalWiFireachabilityForInternetConnection

还有一件事,我理解苹果可以拒绝使用网络但不使用可达性的应用程序.我应该实施
哪些" 必须 "的方法?
仅通知用户目前没有互联网是否足够?

iphone objective-c nsurlconnection reachability ios

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

如何在UIWebView中自动播放YouTube视频

我在这里看到很多关于这个问题的帖子,但仍然找不到这个问题的完美答案.

所以我有一个tableview,每个单元格里面都有一个播放按钮.当用户点击播放按钮时,我会UIWebView向此单元格添加一个,然后播放YouTube视频.

static NSString *youTubeVideoHTML = @"<html>\
    <body style=\"margin:0;\">\
        <iframe class=\"youtube-player\" type=\"text/html\" width=\"%0.0f\" height=\"%0.0f\" src=\"http://www.youtube.com/embed/%@\" frameborder=\"0\">\
        </iframe>\
    </body>\
    </html>";


- (void)playVideoWithId:(NSString *)videoId {
    NSString *html = [NSString stringWithFormat:youTubeVideoHTML, self.frame.size.width, self.frame.size.height, videoId];

    [self loadHTMLString:html baseURL:nil];
}
Run Code Online (Sandbox Code Playgroud)

问题:

此代码实际上并不像我想要的那样播放视频,只是启动YouTube播放器并使用YouTube红色播放按钮进行显示.只有当用户点击红色按钮时,视频才会开始播放.
因此,用户必须点击两个按钮,直到视频开始 - 而不是最好的用户体验...

就像我说的那样,我看到很多关于这个问题的帖子,有些根本不起作用,有些作品但有一些问题让我感到困扰.

我找到的其中一个工作解决方案是@ilias的这篇文章,他展示了如何使用从文件中加载HTML(而不是像我这样的字符串),这个问题的问题在于我播放的每个视频我需要:
加载htm文件 - >将视频ID嵌入其中 - >将文件写入光盘 - >现在我只能播放视频.

奇怪的是,此解决方案仅在您从文件加载Web视图请求时才起作用,如果我尝试从等于文件内容的字符串加载请求,则该方法无效.

youtube objective-c youtube-api uiwebview ios

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

如何创建0.5像素的线宽

在iOS 7中,表格视图的分隔线比以前的ios更薄,看起来像是0.5像素的宽度.

我需要用一个相似的分隔线(仅垂直)将单元格拆分为2,我希望这条线与常规分隔线的宽度相同.

所以我想知道添加这样一条线的最佳方法是什么?

如果我使用a UIView并将其宽度设置为0.5它将不可见,如果我将其宽度设置为1.0,我当然会获得1.0px而不是0.5px的线宽.

我尝试使用视网膜大小为1.0px的资源,但它没有效果......

iphone objective-c uitableview ios

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

在UIImageView上添加圆形遮罩层

我正在构建一个照片过滤器应用程序(如Instagram,Camera +以及更多......),可能主屏幕是UIImageView向用户呈现图像,以及带有一些过滤器和其他选项的底栏.
其中一个选项是模糊,用户可以用手指捏住或移动表示非模糊部分(半径和位置)的圆圈 - 此圆圈外的所有像素都将模糊.

当用户触摸屏幕时,我想在我的图像上方添加一个代表模糊部分的半透明层,其中一个完全透明的圆圈代表非模糊部分.

所以我的问题是,我该如何添加这一层?我想我需要在我的图像视图上面使用一些视图,并使用一些蒙版来获得我的圆形?我真的很感激这里的好建议.

还有一件事
我需要圆圈不会直线切割,但会有一种渐变淡化.像Instagram这样的东西:
在此输入图像描述

而且非常重要的是要以良好的性能获得这种效果,我会成功获得这种效果,drawRect:但旧设备(iphone 4,iPod)的性能非常糟糕

core-graphics objective-c ios

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