Tag: Objective C

围绕多个UIImageView动态包装文本

在iPad应用程序页面中,用户可以手动输入文本并在页面上放置图像/其他媒体 – 使文本在媒体上动态流动。 例如,请看这张照片 。 我也相信Apple表示他们没有使用任何未记录的API,任何开发人员理论上都可以重新创建像Pages这样的应用程序。 如何在我的应用程序中重新创建它? 看起来CTFrame类没有任何机制可以使用UIImageViews / UIWebViews /等进行这种包装,而且我对Cocoa API的了解有点受限,所以我不知道在哪里看。

安排任务以在iOS中执行方法

我想在iOS中安排任务,以根据一天中的时间执行一个方法。 例如,我想每天晚上10点执行startMonitorRegion,并在上午10点执行stopMonitorRegion。 我不想发送本地通知来提醒用户,它需要对用户透明。 无论如何使用NSTimer来做到这一点? 该应用程序将在后台。

为什么我不需要在标题中声明UIAlertViewDelegate?

我认为我终于设法理解了委托的概念,直到发生以下情况:我更改了我的头文件以删除对委托的引用,并且警报仍然有效。 唯一的区别是我丢失了代码提示。 //.h #import //@interface ViewController : UIViewController @interface ViewController : UIViewController – (IBAction)showMessage:(id)sender; @end //.m #import “ViewController.h” @implementation ViewController – (IBAction)showMessage:(id)sender { UIAlertView *message = [[UIAlertView alloc] initWithTitle:@”Hello World!” message:@”Message.” delegate:self cancelButtonTitle:@”Cancel” otherButtonTitles:@”Button 1″, @”Button 2″, nil]; [message show]; } – (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { NSString *title = [alertView buttonTitleAtIndex:buttonIndex]; if([title isEqualToString:@”Button 1″]) { […]

iOS – 需要区分应用程序中的UILocalNotification:didReceiveLocalNotification:

所以这是交易…我需要一种方法来区分我收到UILocalNotification应用程序状态。 有一种情况对我来说我不明白。 这是当应用程序当前在前台运行并且用户拉下通知中心(iOS 5)时,应用程序将被称为applicationWillResignActive:这是完全合乎逻辑的,因为当通知中心将显示在它上面时它将不会处于活动状态。 但是我怀疑applicationDidEnterBackground:在它已经重新激活后会被调用, 但它没有。 因此,当我在通知中心收到UILocalNotifications时,我的应用会尝试在application:didReceiveLocalNotification:处理它们application:didReceiveLocalNotification:但是当我点击通知中心列表中我的应用程序的通知时,我的应用程序将同样处理此通知我在通知中心收到它的方式。 所以我只能用一种方式处理这些通知,但我需要以两种方式处理它们。 那么我如何区分这两种情况: 当应用程序在前台并且用户已拉下时 通知中心和我在此期间收到通知 ( UIApplicationState = UIApplicationStateInactive ) 当应用程序在前台并且用户已拉下时 通知中心并主动选择我的应用程序之一 来自列表的通知( UIApplicationState = UIApplicationStateInactive UIApplicationState = UIApplicationStateInactive UIApplicationState = UIApplicationStateInactive ) 编辑: 我将所有通知存储时间戳为00秒。 所以内部application:didReceiveLocalNotification:我可以检查当前时间[NSDate date]并查看秒数是否大于00? 这意味着,触发通知的iOS不是通知中心的用户。 这当然会传达这样一个事实,即通知实际上将由iOS以及时的方式提供。 如果iOS将在01秒发送通知,我的逻辑将会中断。 但是为了它,我只是做了一些日志记录,看看iOS何时发送我的通知,似乎从控制台的输出判断通知实际上是以毫秒精度(+/- 1)按时交付。 当然,您无法将连接到计算机的开发设备与真实场景进行比较。 2012-07-08 10:09:00.789 App[7535:707] -[AppDelegate application:didReceiveLocalNotification:] [Line 399] application:didReceiveLocalNotification: method running 2012-07-08 10:10:00.789 App[7535:707] -[AppDelegate application:didReceiveLocalNotification:] [Line […]

NSSet -member检查NSValue的相等性

我有一个包含数千个NSValue对象的NSSet (包装CGPoints )。 我想很快找到NSSet是否存在给定的CGPoint值。 在我看来, NSSet的member:方法可以在这里完成工作,除了它使用isEqual:检查相等性。 NSValue对象使用isEqualToValue: ,因此当我执行代码时: [mySet member:valueToCheck]; 它实际上导致Xcode崩溃。 1)是否有某种方法可以使用自定义相等性检查来使其适用于NSValue对象? 2)这是否是最好的方法(即member:首先是否足够快)? 场景是我有一个NSSet包含大量代表屏幕(iPad)像素的点。 后来我需要以每秒数千点的速度轰击那一组,看看它们是否存在于集合中。 我的方法似乎很难实现这一点。 我想创建类似于一个巨大的二维位数组的东西,每个索引代表一个屏幕上的像素。 一旦我知道了我正在测试的那一点,我就可以直接跳到arrays中的那一点并检查1或0 ……这听起来好不好? 谢谢

如何在iOS中将NSMutableArray对象的NSString数据转换为小写?

我正在使用sqlite数据库。 我从sqlite数据库中检索文本数据到名为myArray的NSMutableArray。 在该myArray变量中,有一个名为“info”的列,其中包含文本数据。 我将该数据检索到NSMutableArray后,我想将所有文本数据从sqlite数据库转换为小写。 我在searchBar的textDidChange事件中编写了以下代码。 NSInteger counter = 0; for(NSString *nameMe in myArray) { NSRange r = [[nameMe lowercaseString] rangeOfString:[searchText lowercaseString]]; if(r.location != NSNotFound) { if(r.location== 0) { [tableData addObject:nameMe]; } } counter++; } 但是,lowercaseString中发生错误。 这个错误是 2012-03-31 16:28:18.217 SqliteTest[1812:f803] -[MyInfoClass lowercaseString]: unrecognized selector sent to instance 0x6da9210 2012-03-31 16:28:18.276 SqliteTest[1812:f803] *** Terminating app due to […]

KVC setNilValueForKey:建议调用方法而不使用属性访问器

KVC文档说 当您尝试将属性设置为nil时,将调用键值编码方法setNilValueForKey:方法。 到目前为止听起来不错 …使用setValue:forKey:设置新值。 这样可以保持模型的封装,并确保实际发生因设置值而发生的任何其他操作。 这被认为是比调用访问器方法或直接设置实例变量更好的做法。 为什么在原语或值类型属性上设置’default’值时调用-setValue:forKey:在-setNilValueForKey:方法内更好? 是否有使用KVC方法的性能或技术优势-setValue:forKey:与属性访问器相对(我假设当它说accessor方法时它也适用于访问器属性,因为它们只是方法的合成糖)? 通常,当Apple推荐“最佳实践”时,需要对性能或可靠性进行支持。 有人知道有记录的原因吗?

使用大位掩码的便捷方法

我正在尝试在iOS应用程序中实现一个算法,该算法将使用大型位掩码。 每个位掩码的长度最多为256位(32字节)。 我需要在掩码内的任意位置快速获取/设置位等。 是否有C或Objective-C的内置语言特性使这种事情变得容易,或者我是否应该编写自己的函数来操作任意字符数组中的位? 看起来自己做起来似乎并不太难,但是如果有一些已经可用的东西可以有效而干净地做到这一点,那么我宁愿不写自己的东西。

iPad:如何知道按下iPad键盘的返回键? 请检查图像

我想知道按下以下键时将调用哪个方法。 我想在上面的按键开始行动。 我怎么知道这是按下的?

这2个@synthesize模式和推荐的有什么区别?

示例代码中的许多地方我已经看到了2种不同的@synthesize变量方式。 例如,我在这里采取1个样本按钮。 @property(强,非primefaces)IBOutlet UIButton * logonButton; 1. @ synthesize logonButton = _logonButton; 2. @ synthesize logonButton; 在这2种方法中哪一种推荐?