小编Tom*_*ift的帖子

如何激活具有预设术语的UISearchDisplayController?

我正在以一种非常规的方式使用UISearchViewController.

我的UISearchBar最初是隐藏的.当用户点击按钮时,我取消隐藏UISearchBar并激活UISearchViewController.我还设置了搜索栏的文本,并告诉搜索栏成为第一响应者.

问题是UISearchDisplayController创建的灰色叠加层仍然可见.除非我预设的文本被清除,并且用户开始重新输入,否则它不会消失.

    self.searchDisplayController.searchBar.hidden = NO;
    self.searchDisplayController.searchBar.text = @"term";
    [self.searchDisplayController.searchBar becomeFirstResponder]; // this actually appears to activate everything
    [self.searchDisplayController setActive: YES animated: YES]; // this activates but does not set the searchbar to 1st responder...
Run Code Online (Sandbox Code Playgroud)

为什么UISearchDisplayController继续显示它的灰色叠加,我该如何清除它?

uisearchdisplaycontroller ios

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

ARC,非ARC和继承

除了通过第三方代码强行进入项目之外,我还没有使用过ARC.我已经阅读了所有ARC文档,但没有看到这个问题的答案:

如果我有一个在编译的模块中定义的类,-fobjc-arc我可以在一个未启用ARC的模块中从中派生一个新类吗?

在我看来,只要派生类不试图触及根类中的任何ivars,它应该可以正常工作.在我看来,即使有一个dealloc方法调用[super dealloc]在派生类中也没问题.

那么,另一种方式呢?我可以从非ARC类派生一个启用ARC的类吗?应该也可以正常工作,对吧?

加分点:在混合使用ARC和非ARC代码时,有什么问题我应该让自己知道吗?

objective-c ios automatic-ref-counting

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

验证iphone推送通知令牌?

我还没有在我的应用中实现推送通知.我的理解是,设备上运行的应用程序必须请求令牌,然后将此令牌发送到我的服务器,并且每当我想将消息推送到设备/应用程序时,我的服务器必须将此令牌传递给Apple.

是特定于应用程序的请求推送令牌,还是设备上的所有应用程序共享令牌?

有没有办法让我验证设备发送到我的服务器的令牌确实是由我的应用程序中的请求生成的?

我担心一个可能的恶搞,一个流氓应用程序可以发送一个有效的令牌到我的服务器,这不是我的应用程序请求的令牌.这会欺骗我的服务向该设备/应用程序发送推送通知.

我知道这是不太可能的情况.我正在尝试创建一种机制来验证当我的应用程序向我的服务器发送信息时,我确实在谈论我的应用程序的实例,而不是一些流氓客户端.推送通知似乎是实现此目的的可能方式.

iphone notifications push token

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

相关视图消失后调用的CATiledLayer drawInContext

我今天遇到了一个涉及CATiledLayer的有趣的iOS问题.这只发生在设备上 - 而不是在模拟器中.

我的视图通过drawLayer:inContext:delegate callback在其CALayer中绘制.该图层具有CATiledLayer派生的子图层,该图层在重写的drawInContext:方法中执行自己的绘图.

这两个层都通过CGContextDrawPDFPage()呈现pdf内容.(CALayer绘制低分辨率版本,而CATiledLayer子层在顶部绘制高分辨率内容.)

我遇到了一个我将完成视图的场景 - 将其从超级视图中删除并释放它.在视图上调用dealloc().稍后,系统将调用CATiledLayer的drawInContext:方法(在后台线程上).它会绘制,但是从方法返回时,Springboard会崩溃,并且在这样做时,也会关闭我的应用程序.

我通过在视图的dealloc方法中在CATiledLayer中设置一个标志来修复它,告诉它不再渲染.

但我只能想象有一种更优雅的方式.为什么仍然在父图层之后调用CATiledLayer drawInContext:方法,并且父图层的视图被解除分配?关闭视图的正确方法是什么,以免发生这种情况?

calayer catiledlayer ios

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

使用<span>突出显示html

我正在使用<span>要突出显示的内容周围的标签突出显示HTML文档中的文本.span类具有已background-color定义的,并且border-radius还设置了a.这很好用.

我希望突出显示的<span>内容远远超出内容的正常范围.也就是说,span-start左边的几个像素,以及span-end右边的几个像素.理想情况下,我会这样做而不会将内容分开.

我可以使用任何好的CSS技巧来达到这个目的吗?

html css highlighting

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

应用内购买,具有不同持续时间的多个自动续订订阅

有关应用内购买自动续订订阅的问题:

我不清楚如何处理用户购买多个不同持续时间的订阅的情况.似乎Apple会识别用户是否已经购买了给定的SKU(基于产品ID)并阻止了重新购买(在这种情况下我的应用程序获得了失败的交易事件),但是如果我使用不同的内容提供相同的内容产品ID具有不同的持续时间,那么用户可以购买两次或更多次.

即使我在用户订阅一次后隐藏了其他购买选项,他们也可能会在备用设备上购买另一个订阅,并且该购买最终将恢复到已经拥有订阅的其他设备.

我是否应按交易ID和产品ID跟踪购买的订阅,并计算最终到期日期?这似乎很复杂.

iphone in-app-purchase ipad ios

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

Objective c Split String Issue

我正在尝试将一个字符串拆分为一个NSArray,但是我有一个问题忽略了有语音标记的字符串.

例如

NSString *example = @"100 200 300 \"TEST ITEM\" 500";
NSArray *array = [example componentsSeparatedByString:@" "];
Run Code Online (Sandbox Code Playgroud)

然而,阵列显然被创建为100,100,300,"Test,ITEM",500.是否可以将""作为一个对待?

谢谢

arrays split objective-c ios

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

飞行模式开启时,CLLocationManager如何获取位置

我的应用程序使用CLLocationManager从设备获取位置更新。

我以为,当设备处于飞行模式时,我不会获得位置更新。但是我愿意。

我之所以认为这是因为Apple表示“飞行模式”会关闭Wifi,蜂窝,蓝牙和GPS。请参阅:http//support.apple.com/kb/ht1355

那么,如何以似乎合理的坐标获取位置更新?

iphone core-location cllocationmanager ios

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