Articles of Objective C

iOS popovers作为菜单教程

我正在写一个iPad应用程序并且对于目标C来说是一个新手。我目前正在尝试使用popover作为视图控制器中的菜单。 我理解如何设置弹出窗口并在其中有一个tableview供用户从中选择项目。 但是,我不知道如何将信息传递回容纳弹出窗口的容器视图。 didSelectRowAtIndexPath将在UITableViewController中调用,它可能位于popover视图控制器中。 任何人都可以指出我如何将这些信息带回容器的正确方向? 提前致谢!

从iOS 4过渡到iOS 5 + ARC期间的可变问题:“将非本地对象的地址传递给_autoreleasing参数以进行回写”

我在iOS 4中执行此操作的“旧”方法是在头文件中声明对象并传递对象以进行回写以处理错误参数。 NSError *error; 由于我的知识有限,我无法在iOS5中继续使用此模式并收到错误: “将非本地对象的地址传递给_autoreleasing参数以进行回写” //Instantiate an instance of AVAudioSession object AVAudioSession *audioSession = [AVAudioSession sharedInstance]; //Setup playback and Record [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&error ]; 我的临时解决方案是这样做: NSError *theError = nil; //Instanciste an instance of AVAudioSession object AVAudioSession *audioSession = [AVAudioSession sharedInstance]; //Setup playback and Record [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&theError]; //Activate session [audioSession setActive:YES error:&theError]; 这很烦人,因为我每次需要在Xcode中使用它时都要创建这个本地对象。 我的问题是:在新的ARC范例中有没有更好的方法呢? […]

UIViewAutoresizingNone:轮换后resize

我有一个简单的IPAD结构,AppDelegate包含来自viewController的视图: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ClockVC *clockVC = [[ClockVC alloc]init]; clockVC.view.frame = CGRectMake(100, 100, clockVC.view.bounds.size.width, clockVC.view.bounds.size.height); [self.window addSubview:clockVC.view]; [self.window makeKeyAndVisible]; return YES; } clockVC有一个由此代码定义的viewDidLoad: – (void)viewDidLoad { [super viewDidLoad]; self.view.autoresizingMask = UIViewAutoresizingNone; self.view.autoresizesSubviews = UIViewAutoresizingNone; } clockVC的界限由IB定义,并在应用中覆盖:didFinishLaunching … Width和Height分别为200和150。 ClockVC实现了一步自动旋转的方法:/ / Override to allow orientations other than the default portrait orientation. – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation […]

使用iOS NSRegularExpression进行Ruby样式的字符串插值

我正在尝试为我的应用中的模型生成HTML输出。 这将有效地通过模型中的相关值填充HTML文件中的各个位置。 我原本只是将HTML模板作为格式化字符串,但如果稍后在布局或任何事情上发生任何变化,这将使得将值的顺序与它们在模板中出现的顺序相匹配变得非常麻烦和繁琐。 。 相反,我正在尝试做的是运行一种Ruby样式的文件字符串插值。 无论我想从模型中获取值,我都会将我想要的模型属性的名称设置为: #{key.path} 。 然后,我试图使用以下正则表达式来处理它: @”#{([^}]+)}” 。 要处理这个,我使用以下设置: NSString *processedTemplate = [regex stringByReplacingMatchesInString:template options:0 range:NSMakeRange(0, template.length) withTemplate:[self valueForKeyPath:@”$1″]]; 但是,当我运行它时,我收到错误: *** Terminating app due to uncaught exception ‘NSUnknownKeyException’, reason: ‘[ valueForUndefinedKey:]: this class is not key value coding-compliant for the key $1.’ 我期望的是我可以使用正则表达式匹配并使用它来获取我的模型中符合键值编码的值。 但是,这显然不能像我使用它那样工作。 另外,我认为我正在使用这个,但是当我运行它来替换withTemplate:@”$1″我得到了NULL。 所以,我尝试使用: NSString *processedTemplate = [template stringByReplacingOccurrencesOfString:@”#{([^}]+)}” withString:@”$1″ […]

UITextField自动完成

是否可以根据输入的内容自动完成UITextField? 我需要这个的原因是因为我有一组用户需要选择的预定义单词,而且列表大约是1000项。 我想在UITableView中显示并让用户选择但是在表格列表中有1k项目我认为不是一个好主意。 谢谢

更改所选UITableViewCell子类中的元素

我为我的应用程序实现了一个自定义UITableViewCell,并创建了一个自定义背景视图和selectedbackgroundview,两者都很好用。 但是,我在单元格上有几个其他图像和uilabels,我想要更改它的颜色。 我已经覆盖了以下方法,并且在选择单元格时它会正确记录,但它不会更改图像或文本颜色。 – (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; if (selected) { NSLog(@”setSelected:YES”); separatorImage.image = [UIImage imageNamed:@”SeparatorSelected”]; titleLabel.textColor = [UIColor whiteColor]; } else { NSLog(@”setSelected:NO”); separatorImage.image = [UIImage imageNamed:@”Separator”]; titleLabel.textColor = [UIColor grayColor]; } } 任何想法我做错了什么? 更新 separatorImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@”Separator”]]]; [separatorImage setFrame:CGRectMake(99, 4, 5, 71)]; separatorImage.backgroundColor = [UIColor clearColor]; [self.contentView addSubview:separatorImage]; […]

Objective C – 选择随机NIB文件?

您好我想让我的应用程序选择一个可供选择的randome XIB文件,并排除其中的3个。 HowToPlay *LetsPlay = [[HowToPlay alloc] initWithNibName:@”HowToPlay” bundle:nil]; LetsPlay.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [self presentModalViewController:LetsPlay animated:YES]; [LetsPlay release]; 所以我知道如何通过上面的方法从一个nib文件加载,但我希望它能够选择一个随机的,然后排除某些。 我想要排除的:MainViewController,FlipSideViewController,HowToPlay 我想要的是:问题1,问题2,等等…… 我怎么能这样做的想法? 谢谢!。 祝你有美好的一天

CMAccelerometerData类比。 不推荐使用UIAccelerometer类

根据此文档, CMAccelerometerData类 (在Core Motion框架中找到)具有CMAcceleration类型的属性,称为acceleration ,它是包含3个值(double x,double y,double z)的struct的typedef 我是Objective-C的新手(我只知道C ++ ..)所以我的问题是:我如何访问,假设在我的代码中的某个时刻保留在该属性中的双y值? 我是否首先创建一个CMAccelerometerData类的实例,如下所示: CMAccelerometerData *myAccelerometer; 然后访问其加速属性: double axisYvalue = [myAccelerometer acceleration]; 以上显然是错的,不是吗? 我必须特别在加速中找到Y,所以我该怎么做? double axisYvalue = [myAccelerometer acceleration->y]; // no this is wrong as well.. 那怎么办呢? 最后一个问题,如果我可以:) 鉴于我提到的这个特定的类和属性..并且假设我已经实例化了我的CMAccelerometer类..现在每次,在我的代码中,我使用类似的东西 return [myAccelerometer acceleration->y]; // let’s say that’s the correct version 🙂 在一些 – (双)方法..我将在正在进行调用的特定时刻获得Y轴的值? 我问这个是因为我在阅读现在已弃用的UIAccelerometer类时感到困惑,你必须定义间隔并经常更新x,y,z的值等等。现在我可以获得正在运行的值在Y轴上调用加速属性的那一刻,是不是这样? phew …抱歉这段文字的长度! 🙂

当app force退出或崩溃时如何执行注销function

我想在app强制退出或意外崩溃时执行注销function。 要执行此任务,我需要调用Web服务从服务器端数据库中删除我的信息。但是当app强制退出或崩溃时,我无法调用Web服务。 所以请帮我解决这个问题。 applicationWillTerminate 和 applicationWillResignActive 委托方法对我不起作用! 谢谢!

addObjectsFromArray:不复制到全局NSMutableArray

以下是相关代码的部分示例。 static NSMutableArray *radioInputArray; static NSMutableArray *buttonsArray; – (IBAction)lookForRadioButtons:(id)sender { // NSLog(@”Testing”); NSError *error; NSString *radiostr = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@”getRadios” ofType:@”txt”] encoding:NSASCIIStringEncoding error: &error] ; if (radiostr == nil) { NSLog (@”Error! %@”, error); } else { NSLog(@”%@”,radiostr); NSString *radiotxt= [webView stringByEvaluatingJavaScriptFromString:radiostr]; NSLog(@”%@”, radiotxt); NSArray *myRadios = [radiotxt componentsSeparatedByString:@”::”]; [radioInputArray addObjectsFromArray:myRadios]; NSLog(@”%d”, myRadios.count); NSLog(@”Number […]