Tag: ios

更好的方式从设备获取用户的名字?

我做了一个从设备名称中提取用户名的function。 这个想法是跳过设置步骤,让用户第一次启动应用程序, 直接玩 。 这是一个次优的方法 ,因为我永远不能相信设备名称来保存用户的名字。 问题是:有什么更好的方法来做到这一点? 我的function在下面得到正确的名字… …如果设备的默认名称没有改变(“Sanna的iPod”) … 用英语, …用法语和类似语言(“iPod de Sanna”) …如果名字不以S结尾(“Johannes iPod”=>返回“Johanne”,而应该返回“Johannes”是正确的,因为名字本身以S.) 如果用户将设备的名称改为默认表单以外的名称,显然不会得到正确的名称。 – (NSString *) extractPlayerNameFromDeviceName: (NSString *) deviceName { // get words in device name NSArray *words = [deviceName componentsSeparatedByString:@" "]; NSMutableArray *substrings = [[NSMutableArray alloc] init]; for (NSString *word in words) { NSArray *subwords = [word componentsSeparatedByString:@"'"]; [substrings […]

我如何添加一个ActivityItem到UIActivityViewController中的上层活动栏?

我喜欢将我自己的WhatsApp ActivityItem添加到UIActivityViewController ,但是它总是添加到较低的非彩色的活动栏中,但是我喜欢将它添加到上面的栏中,即带有彩色项目的栏。 那是我使用的代码: WhatsApp *whatsApp = [[WhatsApp alloc] init]; UIActivityViewController* activityVC = [[UIActivityViewController alloc] initWithActivityItems:@[image, text] applicationActivities:@[whatsApp]]; 喜欢。

UITableView顶部的UISearchBar可以隐藏,但保持靠近UINavigationBar

我想在我的UITableView顶部有一个UISearchBar,当你向下滚动时隐藏 :答案很简单,我只需要将它添加到我的表格视图标题,如下所示: UISearchBar *search = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 45)]; self.tableView.tableHeaderView = search; [search release]; 但问题是,当你向上滚动UISearchBar 适合 UITableView的顶部,而不是UINavigationBar的顶部。 为了更清楚我在邮件(不好)和游戏中心(好)做了一个屏幕。 我想要在游戏中心一样。 你知道他们是怎么做的吗?

如何在iOS中编写小型(套接字)服务器

我在一些官方的iOS应用程序中看到了这一点,所以我知道这是可能的和允许的。 我想在iOS上编写一个小型的套接字服务器,这个应用程序,我会写一个桌面机器,可以连接和读取数据。 任何人都做了这样的事情,可以帮助我一些线索或知道一个好的起点?

通过Xcode bot创build的IPA无法为APNS运行,但是如果通过Xcode本身手动构build或通过Xcode构build为归档

我有一个CI构build机器运行Xcode服务器,并使用机器人来生成一个构build,但是通过机器人构build的.ipa无权注册APNS令牌。 具体地说,didFailToRegisterForRemoteNotificationsWithError被调用,并且运行时警告“”应用程序没有find有效的“aps-environment”授权string“。 但是,如果我在一个separte开发PC上构build应用程序,或者我在CI机器上独立于bot创build它,那么一切都很好。 我已经在多个应用程序中广泛使用了推送通知,所以如果应用程序没有使用正确的configuration文件进行签名,则始终会显示消息“无效的”aps-environment“应用程序的权利string”。 然而,我绝对100%确认,应用程序正在构build相同的configuration文件,当作为机器人构build的一部分运行时,我手动构build。 我也知道Xcode在机器人下运行时为运行的用户下载configuration文件到不同的位置,我也知道,当我手动构build时,机器人作为系统运行而不是login用户。 我考虑了所有这些差异,但仍然无法让bot构build工作。 更重要的是我已经使用这个完全相同的CI机器以前build立这个应用程序使用jenkins(也作为系统运行)启用推,它的工作! 这是我所做的/检查: 1)手动将项目下载到桌面,在Xcode中打开并检查在构build设置中被起诉的签名身份和供应configuration文件。 使用Xcode手动构build和运行 – >它的工作原理作为集成运行的一部分,通过机器人间接地下载项目。 在Xcode中打开由Bot下载的项目(Xcode服务器将其下载到:/ Library / Server / Xcode / Data / BotRuns // Cache / NNNN)。 做同样的事情,检查签名标识和configuration文件。 它们与我在桌面上构build时所使用的相同 好,所以问题不是由于使用的实际签名身份和configuration文件的差异造成的。 2)手动运行Xcode时,将configuration文件下载到位置X,但是Bot将configuration文件下载到位置Y.因此,我检查了X和Y的内容,以确保Y没有丢失(如果有但是构build实际上会失败,而不是)。 为了使它们完全相同,我已经将X的全部内容复制到Y中,并再次运行机器人(它们不会被机器人覆盖) – 所以现在机器人和桌面版本使用完全相同的configuration文件仍然存在.ipa执行时有所不同。 顺便提一句,X的位置是〜/ Library / MobileDevice / Provisioning Profiles,Y的位置是/ Library / Server / Xcode / Data / ProvisioningProfiles。 3)当我手动build立它是作为login用户,但是当机器人build立它是系统。 所以在钥匙串中,我尝试将用户钥匙串中的所有证书和密钥复制到系统钥匙串中。 是的,这仍然没有什么区别,由build bot创build的.ipa无法正常运行,而通过Xcode手动创build的build确实运行。 这让我很生气,已经浪费了几天时间,还有什么我可能错过了或者可以尝试解决这个问题? […]

设置第三方服务器与Game Center进行交互

我正在考虑在iOS游戏中添加一个function,以便玩家创build自己的游戏关卡,与其他玩家分享关卡等等。还有一个用户创build关卡的公共存储库,可以按创builddatesorting,评分,难度或其他标准。 这种function需要第三方服务器。 我想我会用Sinatra创build一个RESTful API并在Heroku上运行它。 我的问题是:什么是最好的方式来validation这个API的请求? 我不想要求玩家创build用户名和密码。 我想只使用Game Center的ID系统。 有什么build议么? 我从来没有做过任何服务器端的东西,所以任何帮助表示赞赏! 澄清 是的,我知道苹果不提供自己的系统。 但它确实给开发人员提供了唯一的Game Center标识符(developer.apple.com/library/mac/#documentation/…),我希望能以某种方式使用它来推出我自己的身份validation系统,而不需要用户通过Facebooklogin/微博/等。 如果可能的话。

自定义核心数据SectionNameKeyPath

我是新的核心数据,并试图找出如何在我的sectionNameKeyPath中创build一个自定义sectionNameKeyPath 。 我有一个名为acctPeriod属性的托pipe对象。 这是一个NSString 。 我想创build基于该字段的前4个字符的部分。 前4个字符代表会计期间的年份,不需要保存。 我经历了这个网站,看到关于瞬态属性的post,但我似乎无法让他们工作。 基本上我想这个,然后为我的sectionNameKeyPath分配sectionNameKeyPath 。 @dynamic periodYear; -(NSString *)periodYear { return [self.acctPeriod substringToIndex:4]; } 任何帮助,将不胜感激。 **更新:使用马丁R答案,我能够得到它按预期工作。 – (NSFetchedResultsController *)fetchedResultsController { if (_fetchedResultsController != nil) { return _fetchedResultsController; } NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; // Edit the entity name as appropriate. NSEntityDescription *entity = [NSEntityDescription entityForName:@"Billing" inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entity]; // […]

CALayer不能使用Autolayout进行调整

我创build了一个进度条,通过创build一个渐变图层在tableView中使用。 它完美的作品。 iphone 5: 为了在多个设备上使用应用程序,我创build了故事板中的UIView,标记了它并添加了约束。 但是,当我在iPhone 6上使用应用程序时,CALayer不会resize。 iPhone 6: 我觉得这非常愚蠢,但没关系。 我环顾四周,试图了解如何解决这个问题好几个月,但是我已经提出了一些问题。 是否有人知道如何使CALayers调整与UIView? 任何帮助将非常感激! 谢谢。 progressBar = cell.contentView.viewWithTag(3) as UIView! progressBar.layer.cornerRadius = 4 progressBar.layer.masksToBounds = true // create gradient layer let gradient : CAGradientLayer = CAGradientLayer() // create color array let arrayColors: [AnyObject] = [ UIColor (red: 255/255, green: 138/255, blue: 1/255, alpha: 1).CGColor, UIColor (red: […]

UIImagePickerController允许编辑不工作

我正在使用UIImagePickerController允许用户拍照。 之后我想让他编辑它,但无论我在做什么,我什么也得不到。 这里是我的代码(我正在使用Xamarin): UIImagePickerController imagePicker = new UIImagePickerController (); // set our source to the camera imagePicker.SourceType = UIImagePickerControllerSourceType.Camera; // set what media types //imagePicker.MediaTypes = UIImagePickerController.AvailableMediaTypes (UIImagePickerControllerSourceType.Camera); // show the camera controls imagePicker.ModalPresentationStyle = UIModalPresentationStyle.CurrentContext; imagePicker.ShowsCameraControls = true; imagePicker.AllowsEditing = true; imagePicker.SetEditing (true,true); imagePicker.PreferredContentSize = new SizeF(900,600); imagePicker.CameraCaptureMode = UIImagePickerControllerCameraCaptureMode.Photo; imagePicker.Title="taste.eat. image"; // attach […]

AVAudioRecorder不适用于iPhone 5S

所以我使用的AVAudioRecorderloggingAVCaptureSession录音video旁边(我知道这很奇怪,但对于我的情况,我需要单独logging)。 除了我的iPhone 5S之外,所有设备上的一切正常。 它logging没有错误,但保存到磁盘的文件已损坏或什么的。 当我访问我的Mac上的文件系统,尝试使用VLC或Quicktime播放m4a文件时,出现“无法检测到文件的格式”错误。 这是我如何初始化我的AVAudioRecorder和录制我的audio: // Prepare the audio session [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryRecord error:nil]; [[AVAudioSession sharedInstance] setMode:AVAudioSessionModeVideoRecording error:nil]; // Setup audio recording NSDictionary *recordSettings = @{AVFormatIDKey: @(kAudioFormatMPEG4AAC), AVEncoderAudioQualityKey: @(AVAudioQualityLow), AVEncoderBitRateKey: @16, AVNumberOfChannelsKey: @1, AVSampleRateKey: @22050.0f}; NSError *audioRecorderError; NSURL *audioFileURL = [[self.outputFileURL URLByDeletingPathExtension] URLByAppendingPathExtension:@"m4a"]; self.audioRecorder = [[AVAudioRecorder alloc] initWithURL:audioFileURL settings:recordSettings error:&audioRecorderError]; self.audioRecorder.delegate = self; if […]