草庐IT

Binding_New_Objective-C_Types

全部标签

objective-c - 通过指针枚举 NSString 字符

如何通过提取每个unichar来枚举NSString?我可以使用characterAtIndex,但这比使用递增的unichar*慢。我在Apple的文档中没有看到任何不需要将字符串复制到第二个缓冲区的内容。像这样的东西是理想的:for(unicharcinstring){...}或unichar*ptr=(unichar*)string; 最佳答案 您可以通过先将-characterAtIndex:转换为IMP形式来加快速度:NSString*str=@"Thisisatest";NSUIntegerlen=[strlength]

objective-c - 如何访问非重复 NSTimer 的剩余时间

我正在尝试访问NSTimerX的剩余时间。我想每秒更新一个按钮的标题以反射(reflect)剩余的mm:ss直到零。我在这里找不到任何东西。例如:[btYsetTitle:[Whattoinserthere?]forState:UIControlStateSelected];或者您更愿意以不同的方式解决这个问题? 最佳答案 你可以使用fireDateNSTimer*timer=[NSTimertimerWithInterval:1.0target:selfselector:@selector(updateButton)userInf

objective-c - 查找数组中重复次数最多的对象

我有一个充满字符串的数组,每个字符串都是一个名称。有些名称可能相同,有些可能不同。我使用的语言是Objective-C。我希望能够从这个数组中找出哪个名字最受欢迎(该数组将根据用户提供给应用程序的信息动态变化)。我不确定如何有效地实现这一目标。如果有人可以对此进行扩展或提供示例,将不胜感激。谢谢例子:NSArray*nameArray=[[NSArrayalloc]initWithObjects@"james",@"megan",@"lauren",@"mike"@james",nil];//jameswouldbethemostpopularname 最佳

objective-c - 边框模糊的 UIView

有没有办法模糊/淡出UIView的边框?到目前为止,我对核心图形所做的工作很少甚至没有。 最佳答案 您可以尝试将UIView的CALayer设置为较大的阴影半径和透明度。像这样的东西:#include...CALayer*layer=myView.layer;layer.shadowOpacity=.5;layer.shadowColor=[[UIColorblackColor]CGColor];layer.shadowOffset=CGSizeMake(0,0);layer.shadowRadius=10;

objective-c - 使用反射/内省(introspection)调用参数数量未知的选择器

最近我用java(forandroid)编写了一个应用程序,它使用反射来调用某些对象的方法。参数编号和类型是未知的,这意味着,我有一个统一的机制接收对象名称、方法名称和参数数组(使用JSON)并使用参数数组(Object[]填充了所需类型的参数)。现在我需要为iOS实现相同的功能,当我知道选择器期望的参数数量时,我能够调用一个选择器,如下所示:SELselector=NSSelectorFromString(@"FooWithOneArg");[viewperformSelectorInBackground:selectorwithObject:someArg];我知道我可以通过使用获

objective-c - 如何停止执行选择器?

我想知道如何停止执行选择器我可以这样开始[selfperformSelector:@selector(vibe)];但我正在想办法阻止它。任何帮助将不胜感激..谢谢! 最佳答案 performSelector:方法相当于直接给接收者发送一个selector消息,所以不能取消。即,这两行具有相同的效果:[selfperformSelector:@selector(vibe)];[selfvibe];cancelPreviousPerformRequestsWithTarget:(和类似的)方法只能取消不立即执行的选择器消息。您可以通过

objective-c - 为什么在这种情况下 respondsToSelector 对我不起作用?

我遇到了一个小难题,这让我很困惑。在我正在编写的应用程序中,我大量使用委托(delegate)作为一种模式。通过在每次委托(delegate)调用时使用“[delegaterespondsToSelector]”测试委托(delegate),我试图在调用委托(delegate)的代码中尽可能“小心”。除非我在UIView子类中,否则一切正常。在那种情况下,respondsToSelector返回NO但我可以安全地调用委托(delegate)代码,因为它显然存在并且可以正常工作。我已将其归结为最简单的示例。如果您能提供任何帮助,我们将不胜感激:在我的UIView子类的.h文件中:#imp

objective-c - 在 iOs 中手动加载不同的本地化 Nib

我正在开发一款支持多语言的应用。如您所料,有时我会使用如下代码加载一些nib文件:self.currentController=[[newClassalloc]initWithNibName:@"CustomController"bundle:nil];然后,该应用将从其languange文件夹中加载相应的本地化xib版本。现在,我想知道是否可以手动加载本地化的nib文件。例如,不是简单地加载CustomController,而是加载english/french/german/etc.版本自定义Controller。有什么办法可以实现吗?提前感谢您的帮助!附言我知道这可能不是在ipho

objective-c - 使用 void 而不是 IBAction 作为方法的返回类型

我正在学习ObjC和iOS开发。我在我的应用程序中使用的每个组件都是以编程方式创建的(View、按钮、标签等)。这是我的代码...UIButton*btn=[UIButtonbuttonWithType:UIButtonTypeRoundedRect];[self.btnaddTarget:selfaction:@selector(someAction:)forControlEvents:UIControlEventTouchDown];....-(void)someAction{logic}我注意到我可以使用void而不是IBAction作为选择器的返回类型。这是正确的方法吗?会不会

objective-c - 选择单例还是类别?

在我的应用程序的早期,当我的经验比现在少得多时,我想用我自己的自定义动画为ViewController之间的一些转换增添趣味。不知道从哪里开始,我四处寻找像MVC这样可以随时从几乎任何Controller访问的模式,结果证明,单例是可行的方法。我没有意识到的是,似乎对单例模式存在着强烈的、有充分理由的仇恨,我自己也开始明白为什么,但这不是重点。所以,过了一会儿,我决定将我完全相同的实现移到UINavigationController上的一个类别中(毕竟,它处理转换!),保留原始类以进行比较,并且想知道哪种方法最有效。在彻底测试了这两种实现之后,我可以毫无疑问地说它们在各个方面都是平等的