如果我在Interface Builder中设置了大量按钮,我如何通过代码将它们放入数组中?
例如,如果我有三个按钮,并在接口文件中定义它们:
@property (nonatomic, retain) IBOutlet UIButton *button1;
@property (nonatomic, retain) IBOutlet UIButton *button2;
@property (nonatomic, retain) IBOutlet UIButton *button3;
Run Code Online (Sandbox Code Playgroud)
如果我想将每个按钮重命名为"Hello",我希望能够将它们组合成一个数组,然后使用如下函数:
for (int i = 0; i < someArray.count; i++)
{
someArray[i].text = @"Hello";
}
Run Code Online (Sandbox Code Playgroud)
有人可以提供有关如何实现这一目标的信息(如果可能的话)?
谢谢
在分析应用程序时,我注意到每次执行某些操作(涉及UIViews)时,实时字节增加大约250 KB.
查看对象列表,主要(不断增长的)罪魁祸首只是读作"malloc 144字节".
偶尔我使用Allocations工具来发现我所持有的对象比我想要的更长,但我不确定如何解释"malloc"对象.
任何指导将不胜感激.
我正在慢慢地学习用于iOS开发的URL加载系统,我希望有人可以简要解释下面这段代码:
NSString *myParameters = [[NSString alloc] initWithFormat:@"one=two&three=four"];
[myRequest setHTTPMethod:@"POST"];
[myRequest setHTTPBody:[myParameters dataUsingEncoding:NSUTF8StringEncoding]];
Run Code Online (Sandbox Code Playgroud)
最终我希望能够创建一个登录我的ISP网站的应用程序,并检索我剩下的月份剩余的数据,我觉得我应该首先了解setHTTPMethod/setHTTPBody.
亲切的问候
我仍然在学习Objective-C的基础知识,但我仍然试图掌握对象和类.
我理解通常的类比:"汽车"是类,"福特"是该类的对象,具有某些属性,如"颜色"和"年制造".我不明白的是如何在实际使用中使用它.
假设我正在创建一个包含所有常用功能的基本Web浏览器(加载页面,显示页面,将页面添加为书签,打印页面).在简单的变量和方法之外,我似乎无法想到这样的应用程序.你知道,你单击一个按钮它会调用一个方法来操作一些变量.我也不能不认为这将是一个非常长的代码页,所以我理解它将有助于分解它.
我很抱歉,如果这一切都非常含糊,我只是觉得很难理解何时我应该创建新的类,什么时候可以添加另一个方法给我已经在工作的类.
亲切的问候.
这是一个初学者,为iPhone开发,有一个非常简单的问题:在头文件中声明一个方法,然后在实现文件中填写它的原因是什么?这总是必须要做吗?
另外,我知道在头文件的@interface中声明变量,但为什么它们有时只用@property标签重复?这是否适用于其他类可能希望读取或写入的变量(因此它们会自动创建getter和setter方法)?
亲切的问候.
我已经使用以下代码对UILabel进行了子类化,这可以正常工作 - 但是涉及子类的任何动画都比普通的UILabels慢很多.我认为Quartz是罪魁祸首,但是我能做些什么来加快速度?
- (void)drawTextInRect:(CGRect)rect
{
CGSize shadowOffset = self.shadowOffset;
UIColor *textColor = self.textColor;
// Establish the Quartz 2D drawing destination:
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 1);
CGContextSetLineJoin(context, kCGLineJoinRound);
// Draw the label’s outline:
CGContextSetTextDrawingMode(context, kCGTextStroke);
self.textColor = [UIColor whiteColor];
[super drawTextInRect:rect];
// Draw the label:
CGContextSetTextDrawingMode(context, kCGTextFill);
self.textColor = [UIColor textColor];
self.shadowOffset = CGSizeMake(0, 0);
[super drawTextInRect:rect];
self.shadowOffset = shadowOffset;
}
Run Code Online (Sandbox Code Playgroud) 如果我想实现以下代码,枚举是否合适?我在枚举上查了几个问题,但我还是有点不确定.
if (dayOfWeek == Monday)
{
// Do something
}
else if (dayOfWeek == Tuesday || dayOfWeek == Wednesday)
{
// Do something else
}
Run Code Online (Sandbox Code Playgroud)
如果这看似正确,我将如何初始化枚举?它会进入标题或实现文件吗?
我知道视图控制器可以帮助控制应用程序中的多个视图,但我无法理解何时使用它们.
如果我有一个带有主页面的应用程序,几个具有"层次结构"结构的视图,以及一个未与层次结构连接的页面,我的应用程序应该有哪些文件?appdelegate,导航控制器和视图控制器?多个视图控制器?只是一个导航控制器?
此外,它们是否应包含在一个.xib文件或多个.xib文件中?
任何帮助将不胜感激.
谢谢.
我仍然在使用Objective-C中的类和对象.
一个类只是一个接口和实现文件的组合?或者,换句话说,你什么时候对自己说"我需要一个新的.m文件".目前,当我想将某些方法和变量放在一个单独的位置时,我创建了一个新的实现文件,这样我的主代码就不会变得庞大.
任何帮助将不胜感激.
是否可以启动计时器并使用多个参数传递选择器方法?
下面是一个工作计时器的简单示例:
gameTimer = [NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(gameLoop:)
userInfo:nil
repeats:YES];
Run Code Online (Sandbox Code Playgroud)
选择器方法将被命名 - (void)gameLoop:(NSTimer *)theTimer;
是否可以使用多个参数传递此选择器方法?那么该gameLoop
方法还可以处理一个int
值和一个bool
值?
以下显然不起作用,但可能会突出我所追求的内容:
gameTimer = [NSTimer scheduledTimerWithTimeInterval:0.5
target:self
selector:@selector(gameLoop:NO:75)
userInfo:nil
repeats:YES];
- (void)gameLoop:(NSTimer *)theTimer isRunning:(bool)running numberOfSteps:(int)steps;
Run Code Online (Sandbox Code Playgroud)