小编ser*_*gio的帖子

iPhone开发中的自我语法

以下两种self语法访问对象属性的方法有何区别: -

方法1: -

    self.effortView = [[EffortView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
    self.effortView.effortTableView = [[UITableView alloc]initWithFrame:CGRectMake(25, 25, 300, 420) style:UITableViewStyleGrouped];
Run Code Online (Sandbox Code Playgroud)

方法2: -

    effortView = [[EffortView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
    effortView.effortTableView = [[UITableView alloc]initWithFrame:CGRectMake(25, 25, 300, 420) style:UITableViewStyleGrouped];
Run Code Online (Sandbox Code Playgroud)

effortView被定义为一个属性,并合成到类编址为self方法1.这两种方法都有效.

我在Mac 10.6.6上使用Xcode 4.0 iPhone SDK 4.3.

请赐教.

谢谢你们

iphone objective-c ios4 ios

1
推荐指数
1
解决办法
396
查看次数

如何在设置标志时将代码包含到构建中?

我已经在我的应用程序中添加了一些调试代码,我只想在需要时调用它.我记得有一些IFDEF可以用来有条件地将代码包含在源文件中.

例如,我可能有这样的事情:

IFDEF kDebugEnabled == YES {
    // some debugging code here
}
Run Code Online (Sandbox Code Playgroud)

然后,如果kDebugEnabled为YES,则只将这段代码编译成二进制文件.

我怎么能这样做?

请注意:我不想使用项目编译器标志设置.我只是想定义一个BOOL(或者同样有用的东西),这是真或假,然后只需在我的App Delegate中轻松设置它.我发现很难导航到项目编译器设置,搜索标志然后设置它.我知道有一个可能有用的Debug标志.

iphone objective-c conditional-compilation ipad ios

1
推荐指数
1
解决办法
312
查看次数

创建NSDictionaries的NSDictionary

信不信由你,我在问这个问题之前已经在互联网上搜索过了.令人难以置信的是,我还没有找到一个很好的明确示例,说明如何创建NSDictionaries的NSDictionary.

这是我到目前为止的代码,但它打印为null.有任何想法吗?

// Here I am creating the dictionaries in the code until I start getting them from the server ;)
NSArray *keys = [NSArray arrayWithObjects:@"mission", @"target", @"distance",@"status", nil];


NSArray *objectsA = [NSArray arrayWithObjects:@"tiger", @"bill", @"5.4km", @"unknown", nil];
NSDictionary *tiger = [NSDictionary dictionaryWithObjects:objectsA 
                                                  forKeys:keys];

NSArray *objectsB = [NSArray arrayWithObjects:@"bull", @"roger", @"10.1km", @"you are dead",  nil];
NSDictionary *bull = [NSDictionary dictionaryWithObjects:objectsB 
                                                 forKeys:keys];

NSArray *objectsC = [NSArray arrayWithObjects:@"peacock", @"geoff", @"1.4km", @"target liquidated", nil];
NSDictionary *peacock = [NSDictionary dictionaryWithObjects:objectsC 
                                                    forKeys:keys];

// …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c nsdictionary ios

1
推荐指数
1
解决办法
3295
查看次数

1
推荐指数
1
解决办法
296
查看次数

实现在Objective-C中链接消息的机制?

我正在编写一个应用程序,需要在另一个方法完成后运行方法.(常见情况,对吧?)

我正在尝试实现链式方法.我想出的最好的就是打电话performSelector:withObject:afterDelay:.我只是不确定这是否是最好的方法.我已经研究了Cocos2d游戏引擎如何实现它的CCSequence类,但我不确定我是否理解它.

我怀疑块在这里会做得很好,除了我不确定如何使用它们作为回调对象或其他什么.

我将如何一个接一个地实现运​​行方法的机制?(我愿意使用定时器或块,但我不知道在这种情况下我是如何使用块的.)

编辑:

为了澄清,我正在尝试实现一个类似cocos2d CCSequence类的系统,它采用一些方法并按顺序"调度"它们.像动画这样的东西,需要花费不止一个时钟周期才能运行.

我不是要阻止主线程,也不想相互硬编码方法.Cocos2d有一个排序系统,我可以将方法传递给队列并按顺序运行它们.

编辑2:

此外,我希望能够取消我的预定队列,所以我不确定GCD是否适合这一点.可以取消GCD串行队列吗?

iphone block objective-c ios

1
推荐指数
2
解决办法
649
查看次数

如何阻止UIWebView立即加载URL?

我想停止WebPage加载UIWebView,同时传递另一个URL进行加载.

iphone objective-c uiwebview

1
推荐指数
1
解决办法
1469
查看次数

iPhone:无法连接插座?

我正在尝试将UITextField连接到文件的所有者.虽然我已经服用了

  IBOutlet UITextField *txt1
Run Code Online (Sandbox Code Playgroud)

但我无法连接插座

在此输入图像描述

你能否说一下可能出错的地方?

iphone cocoa-touch objective-c ios4 ios

0
推荐指数
1
解决办法
1274
查看次数

pushViewController无法正常工作

我对Objective-C和iPhone编程很新,所以如果这是一个新手问题,我很抱歉.我有一个简单的应用程序需要从一个视图到另一个视图.第一个视图是UIViewController.我在IB中设置了xib文件(即将一些按钮拖到窗口上)并连接所有按钮(这些按钮都可以工作).然后我创建了另一个xib文件和类(也是一个UIViewController)并将它们连接起来.在第一个视图中按下按钮时,我想加载第二个视图.这是应该推动视图的代码:

-(IBAction)createAccount:(id)sender{
    CreateAccountViewController*acctView = [[CreateAccountViewController alloc] initWithNibName:@"CreateAccount" bundle:nil];
    [self.navigationController pushViewController:acctView animated:YES];
    [acctView release];
}
Run Code Online (Sandbox Code Playgroud)

但这没有任何作用.当我将print语句放在createAccount方法中时,那些是打印的(我可以多次单击该按钮并且它永远不会崩溃)但是从不推动acctView.当我打印出self.navigationController的值时,它返回null.它甚至更奇怪,因为如果我以模态方式呈现acctView,那么它的工作原理.

-(IBAction)createAccount:(id)sender{
    CreateAccountViewController*acctView = [[CreateAccountViewController alloc] initWithNibName:@"CreateAccount" bundle:nil];
    [self presentModalViewController:acctView animated:YES];
    [acctView release];
Run Code Online (Sandbox Code Playgroud)

}

这工作得很好,但我不想以模态方式使用视图.我完全迷失在这里.在过去的几个小时里,我遇到过很多帖子,说要用UINavigationController做一些事情并将其挂钩到我的视线,但我该怎么做?任何帮助是极大的赞赏!谢谢.

iphone objective-c ios

0
推荐指数
1
解决办法
6906
查看次数

如果它的重复属性等于YES,我应该释放NSTimer吗?

有时我会在不释放物体时感到困惑.我有:

NSTimer *timer2;

timer2 = [NSTimer scheduledTimerWithTimeInterval: (5)
                                         target: self
                                       selector: @selector(someMethod:)
                                       userInfo: nil
                                        repeats: YES];
Run Code Online (Sandbox Code Playgroud)

并且每五秒执行一次的方法是:

-(void) someMethod:(NSTimer*)theTimer
{
   NSLog(@"code got executed");
}
Run Code Online (Sandbox Code Playgroud)

我有另一种方法,在我的根视图控制器上放置另一个nib文件:

ViewControllerObjetivos *control = [ViewControllerObjetivos alloc];

[control initWithNibName:@"ViewControllerObjetivos" bundle:nil];

UINavigationController *navControl = [[UINavigationController alloc]
                                      initWithRootViewController:control];

[self presentModalViewController:navControl animated:NO]; 
[navControl setNavigationBarHidden:YES];

[control release];
[navControl release];
Run Code Online (Sandbox Code Playgroud)

当我调用最后一个方法时,新的nib文件放在根视图控制器上.而someMethod仍被调用!

所以我很困惑,如果我应该释放timer2因为我没有使用单词init或alloc也没有复制来初始化它.那么我想做什么呢?我应该停止它然后调用我显示的最后一个方法吗?或者我应该发布整个nib文件,因为我将要使用新的nib文件?

iphone cocoa-touch release objective-c ios

0
推荐指数
1
解决办法
98
查看次数

iOS:旋转iPad,改变观点的阶段?

我的应用程序针对每个方向具有非常不同的UI结构

我应该在iPad的旋转生命周期的哪个阶段删除,然后添加方向的UI以确保最顺利的过渡?

cocoa-touch ipad screen-rotation ios

0
推荐指数
1
解决办法
925
查看次数

uibutton作为子视图访问时如何设置图片

所以我在视图中有一个按钮,我知道如何访问它,但我不知道如何更改该按钮上的图片.这是我得到的:

for(UIView *button in [okvir subviews]){

        if([button isKindOfClass:[UIButton class]]){
                    UIImage *picture=[UIImage imageWithData:slika];
                    [button setImage:picture forState:UIControlStateNormal];
                }
            }
Run Code Online (Sandbox Code Playgroud)

但是会导致错误:

No visible @interface for 'UIView' declares the selector 'setImage:forState:'
Run Code Online (Sandbox Code Playgroud)

我猜这是因为按钮是UIView而不是UIButton,任何想法如何做到这一点?

iphone xcode objective-c uiview ios

0
推荐指数
1
解决办法
489
查看次数

触摸速度

我正在cocos2d中制作一个简单的物理游戏,并希望在滑动速度的同时启动一个粒子.为了获得速度,我需要进行两次触摸并确定(位置差异)/(时间戳的差异).我的问题是我无法接触两次.我尝试了几种方法,但没有一种方法可行.

我尝试存储第一次触摸

@property (nonatomic, strong) UITouch *firstTouch;

...

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];

    [self setFirstTouch:touch];
    NSLog(@"first touch time 1: %f", self.firstTouch.timestamp);
}


-(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];

    NSLog(@"touch ended");
    NSLog(@"first touch time 2: %f", self.firstTouch.timestamp);
    NSLog(@"end of touch time: %f", touch.timestamp);
}
Run Code Online (Sandbox Code Playgroud)

但这给了我每次时间戳0的差异.它似乎用最近的触摸取代了firstTouch

我是否做错了指针,这被替换了?

也许我可以从ccTouchesMoved那里接受最后两次接触?

iphone objective-c cocos2d-iphone ios

0
推荐指数
1
解决办法
425
查看次数