Tag: cocoa触摸

序列化/存储UIView及其子视图

我是一个相对较新的iOS开发人员,我以前的大部分经验来自.NET。 我的应用程序是一个像系统的canvas,有一个父UIView,其中包含所有的对象,用户放置/调整/等作为子视图。 我希望能够将这些职位/configuration保存到指定的文件。 在.NET中,我会简单地inheritanceUIView,给它一个“标题”属性,然后将其序列化到文件,然后反序列化它们加载它们,但在cocoa我很迷茫。 最初我以为我可以做到这一点使用NSCoding,但这似乎不是一个很好的解决scheme,多个文件保存。 所以我看了核心数据,但我不知道如何创build像UIView现有的Cocoa UIKit类的核心数据对象。 我花了一段时间search一下,找不到任何关于这种困境的信息。 我应该使用什么,最好的方法是什么?

iOS 7自定义字体alignment

在iOS 6上实现应用程序的布局时,我使用了自定义的TTF字体(Gotham)。我注意到它的基线总是比普通字体高一些,但是只是轻轻一推即可。 现在,我已经更新到iOS 7 SDK,在iOS 7设备上运行时,字体位置更接近常规字体,但在iOS 6设备上看起来仍然有所偏移。 所以看起来苹果公司在解释iOS 7的字体指标时,解决了在基线上引起垂直移动的原因,但是却没有改变iOS 6。 我已经尝试使用苹果公司的字体工具套装来修改实际的TTF上升,下降和行间距属性,根据这个博客post和许多答案在这里stackoverflow,它在iOS 6上有帮助,但在iOS 7上并没有太大的改变。 我的问题是:有什么我可以做的,使用自定义字体在iOS 6和7,而不需要调整每个标签取决于运行的iOS版本? 我知道这已经在iOS 7发行说明中提到,但我不想在我的代码中添加大量的条件语句,以便在iOS 6或iOS 7设备上使用不同的标签。

如何使用NSInputStream和NSOutputStream

我正试图在iPhone之间创build一个简单的多人回合制游戏。 现在我想要做的就是将一些string传递给我的方法,并让方法通过NSOutputStream发送string。 我想我已经使用NSNetServiceBrowser正确连接了我的NSNetServiceBrowser 。 一旦他们连接,我的NSNetServiceDelegate有netService:didAcceptConnectionWithInputStream:outputStream:叫,这应该给我我的I / O NSStream对。 我的方法如下所示: -(void)netService:(NSNetService *)sender didAcceptConnectionWithInputStream:(NSInputStream *)inputStream outputStream:(NSOutputStream *)outputStream{ [self.myNet getInputStream:&inputStream outputStream:&outputStream]; self.inStream = inputStream; self.outStream = outputStream; [self.inStream setDelegate:self]; [self.inStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [self.inStream open]; } 我想我已经正确设置了NSInputStream。 我也有一个NSStream实现stream:handleEvent:的委托stream:handleEvent: 它看起来像这样: -(void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode{ NSInputStream *inStream = (NSInputStream *)aStream; BOOL shouldClose = NO; switch(eventCode) { case NSStreamEventEndEncountered: shouldClose = YES; […]

目标C:如何从string获取子string后的数字

我有一个很长的string,如下所示 请计划参加提供升级到现有的代码 上午会议,以acoomdatestream氓队员 会议号码:457 231 123 join这个会议 去http://domainname.com input密码 现在我想要在文本“会议号码”之后抓取号码,即457 231 123 请任何帮助。 谢谢 编辑 比方说,我有一个string NSString *myString = @"Please plan to attend to provide upgrade to existing code morning meeting to acoomdate bum team members Meeting Number: 457 231 123 —————————————————– to join this meeting —————————————————— 1. go to http://domainname.com 2. enter password"

核心数据问题 – 检查项目是否存在

我正在处理从NSScreenCast处理导入到核心数据应用程序的代码示例。 (https://github.com/subdigital/nsscreencast/tree/master/012-core-data-importing-data/BeerBrowser)。 我有大部分工作的例子。 我能够推动刷新button,它parsingJSON并将其导入到数据库中。 但是,每次按下刷新button,都会重新添加相同的数据。 我已经追溯到下面的代码。 + (Brewery *)breweryWithServerId:(NSInteger)serverId usingManagedObjectContext:(NSManagedObjectContext *)moc { NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:[Brewery entityName]]; [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"serverId = %d", serverId]]; [fetchRequest setFetchLimit:1]; NSError *error = nil; NSArray *results = [moc executeFetchRequest:fetchRequest error:&error]; NSLog(@"results: %@", results); if (error) { NSLog(@"ERROR: %@ %@", [error localizedDescription], [error userInfo]); exit(1); } if ([results count] == […]

滚动时viewForHeaderInSection消失

我在我的UITableView中使用自定义标题视图,但只要我开始向下滚动标题消失,而不是像使用默认标题保持在原位。 而且它不是在屏幕上滚动,只是完全消失。 viewForHeaderInSection仍然被调用,但我的自定义标题视图的drawRect方法不是。 我究竟做错了什么? 这是一些代码… 我的UITableView数据源… – (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { HeaderView* headerView = [[[HeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 40.0f)] autorelease]; return headerView; } …和我的自定义标题… -(void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetRGBFillColor(context, 115.0f, 125.0f, 133.0f, 0.5f); CGContextFillRect(context, CGRectMake(0.0f, 0.0f, 320.0f, 40.0f)); }

准确的时间在iPhone上

有没有一种方法可以在iPhone中非常精确地获得时间? 目前我正在尝试与ios NTp client 在这里 。 与不同的设备相比,我差不多有600毫秒的差距。 即使我不担心ntp的准确时间,我想在不同的设备上以milliseconds显示同一时间。

我怎么能限制地图区域只有一个国家在iOS?

我正在使用mapkit为iOS创build应用程序。 我想限制地图的边界只限于一个特定的地区/国家。 有没有办法做到这一点?

为什么在requestAccessToEntity中使用performSegueWithIdentifier时使用dispatch_async:完成?

当我在完成块中调用performSegueWithIdentifier时,如果我不把这个调用包装在dispatch_async中,实际上需要10秒的时间。 但是,我可以做其他事情,而不用包装在同一个dispatch_async中,比如做核心数据工作,或者logging“事物”… 任何有关这如何工作的见解,为什么…我迷路了。 如果这不是问这个问题的地方,我很抱歉。 EKEventStore *store = [[EKEventStore alloc] init]; [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) { dispatch_async(dispatch_get_main_queue(), ^{ [self performSegueWithIdentifier:self.phaseSegue sender:self]; }); }];

MFMessageComposeViewController显示空白/白色屏幕

if([MFMessageComposeViewController canSendText]) { MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; controller.body = @"This is a test!"; controller.recipients = [NSArray arrayWithObject:phones]; controller.messageComposeDelegate = self; [self presentViewController:controller animated:YES completion:nil]; } 此代码使整个屏幕变白/空白。 有什么build议么?