小编Abi*_*ern的帖子

如何摆脱警告<Class>可能无法响应<Selector>?

下面的代码按预期运行,但编译器一直告诉我:警告:'StatusViewController'可能无法响应'-beginLoadingThreadData'

我如何摆脱这种警告,最重要的是为什么xcode认为是这种情况?

这是我的代码:

[self beginLoadingThreadData]; // called in the loadDidView block

- (void)beginLoadingThreadData
{
    [NSThread detachNewThreadSelector:@selector(loadThreadData) toTarget:self withObject:nil];
}

- (void)loadThreadData
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    [NSThread sleepForTimeInterval:2];
    [self performSelectorOnMainThread:@selector(finishedLoadingThreadData) withObject:nil waitUntilDone:NO];
    [pool release];
}

- (void)finishedLoadingThreadData
{
    [[BusinessLogic instance] startTracking:self];
}
Run Code Online (Sandbox Code Playgroud)

iphone cocoa cocoa-touch objective-c

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

Cocoa - 使用NSBundle的代码问题

有人建议我使用这行代码从我的资源文件夹/项目包中调用图像.我也看到它在许多不同的网站教程中使用完全相同.

NSBundle *mb=[NSBundle mainBundle];


NSString *fp=[mb pathForResource:@"topimage" ofType:@"PNG"];


NSImage *image=[NSImage initWithContentsOfFile:fp];
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下警告:

NSImage可能无法响应+ initWithContentsOfFile +

NSImage的文档显示initWithContentsOfFile实际上是一个应该工作的方法.我可能会在这里失踪什么?

macos cocoa nsimage nsbundle

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

NSMutableArray:如何修复此"EXC_BAD_ACCESS"代码?

我正在制作一个OpenGL应用程序,但是我收到了一条EXC_BAD_ACCESS消息.

这是我的代码:

//(draw function only, ask if you need more)
//objects: array of triangles/quads
//Triangle/Quad3D: should be obvious, I like OOP
//PS this is in a 'Composite Object' class
- (void)draw {
    //NSLog(@"%@",objects);
    NSMutableArray *quad, *tri;
    quad =  [NSMutableArray arrayWithCapacity:0];
    tri =   [NSMutableArray arrayWithCapacity:0];
    NSEnumerator *e = [objects objectEnumerator];
    id object;
    while (object = [e nextObject]) {
        if ([object isKindOfClass:[Triangle3D class]]) {
            [tri addObject:(Triangle3D *)object];
        } else if ([object isKindOfClass:[Quad3D class]]) {
            [quad addObject:(Quad3D *)object];
        }
    }
    NSLog(@"%d",[tri count]);
    NSLog(@"%d",[quad …
Run Code Online (Sandbox Code Playgroud)

opengl cocoa objective-c

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

字符为+1或-1的函数

实现一个函数crypto(),其中字母表中奇数位置i的每个字符都将使用位置i + 1处的字符加密,而偶数位置处的每个字符将使用位置i-1处的字符进行加密.或者说,'a'用'b'加密,'b'加'a','c'加'd','d'加'c','e'加'f','f'加' e'等

这应该出现:

>>>>crypto('abc')

bad

>>>>crypto('OOZ')

PPY
Run Code Online (Sandbox Code Playgroud)

***尝试

def crypto():
    return [ord(c) in s]
s = 'cat'
alist = ascii_list(s)
print alist

alist[0] +=1
alist[1] +=14
Run Code Online (Sandbox Code Playgroud)

我几乎是肯定的,我对这一切都错了.

python

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

更多关于财产释放

也许有人可以解释财产之间的区别:

在.h文件中

@property(nonatomic,retain) NSString *someString;
@property(nonatomic,retain) NSString *someString2;
Run Code Online (Sandbox Code Playgroud)

在.m文件中

@synthesize someString = _someString;
Run Code Online (Sandbox Code Playgroud)

要么

@synthesize someString2;
Run Code Online (Sandbox Code Playgroud)

在控制器中使用_someString和self.someString2有什么区别?并且在dealloc我应该如何释放这些属性

[_someString release];
Run Code Online (Sandbox Code Playgroud)

[self.someString2 release];
Run Code Online (Sandbox Code Playgroud)

要么

_someString = nil;
_someString2 = nil;
Run Code Online (Sandbox Code Playgroud)

properties objective-c ios ios5

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

f:没有调用ajax监听器

考虑到JSF和AJAX,我遇到了问题.我试图在访问者插入客户ID后更新一些客户详细信息.

首先,摘自xhmtl代码:

    <h:form>
    <h:panelGrid columns="2">
        <h:panelGrid columns ="2" border="1" id="customer_grid">
            <h:outputLabel value="#{mbean_msg.reservation_lblCustomerNo}" for = "customer_id"/>
            <h:inputText id = "customer_id" value="#{reservationHandler.customer.customer_id}">
                <f:ajax listener="{reservationHandler.autocompleteCustomerDetails}" 
                    render="customer_grid" />
            </h:inputText>

            <h:outputLabel value="#{mbean_msg.reservation_lblLastname}" for="lastname"/>
            <h:inputText id="lastname" value="#{reservationHandler.customer.lastname}" required ="true" 
                requiredMessage="#{error_msg.errmsgLastname}" validator="#{reservationHandler.validateCustomer}"/>

            <h:outputLabel value="#{mbean_msg.reservation_lblFirstname}" for="firstname"/>
            <h:inputText id="firstname" value="#{reservationHandler.customer.firstname}" required ="true"
                requiredMessage="#{error_msg.errmsgFirstname}" validator="#{reservationHandler.validateCustomer}"/> 
Run Code Online (Sandbox Code Playgroud)

监听器方法在我的java文件(ReservationHandler.java)中实现,如下所示:

public void autocompleteCustomerDetails(){
      System.out.println("Auto Complete"); // for testing
}
Run Code Online (Sandbox Code Playgroud)

基本上我试图用监听器调用autocompleteCustomerDetails方法.不幸的是,从未调用此方法.无论如何,渲染似乎工作得很好,因为其他inputTexts自己更新(可见).

有没有人有想法,为什么没有听到听众?

java ajax jsf

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

coreLocation多久更新一次

我正在使用CoreLocation框架,我很好奇它更新的频率,它真的不准确,我正在讨论从NSTimer调用方法来增加它的使用频率.我的代码是下面的

在ViewDidLoad中

//location update
CLController = [[CoreLocationController alloc] init];
CLController.delegate = self;
[CLController.locMgr startUpdatingLocation];
Run Code Online (Sandbox Code Playgroud)

我的虚空方法

- (void)locationUpdate:(CLLocation *)location {

    int speedInt = [location speed]*2.23693629;
    if(speedInt < 0){
        speedInt = 0;
    }
    speedLabel.text = [NSString stringWithFormat:@"%d", speedInt];
}

- (void)locationError:(NSError *)error {
    speedLabel.text = [error description];
}
Run Code Online (Sandbox Code Playgroud)

iphone ios

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

在Objective-C中调用方法时替代"self"

这可能听起来真的很棒,但我已经花了一整天的时间来解决这个问题并且会感激一些帮助.

你看我有一种方法,我在游戏玩法中不止一次打电话.如果我使用[self myMethod];它然后它工作一次.然后当我再次调用它时,方法中的动画不再开始了.

我需要的是将"自我"替换为可以"分配"和"释放"以使我的动画有效的替代方案.

我试过了;

@implementation gameViewController


gameViewController *object = [[gameViewController alloc] init];

[object myMethod];
Run Code Online (Sandbox Code Playgroud)

然而,上面的自我替代甚至没有调用该方法.我不知道我做错了什么,它假设像"自我"一样工作.

我错过了什么吗?你如何让班级的对象像"自我"一样工作?

非常感谢.

这是我的代码的更详细的外观;

[self explosionAnimations];

- (void) explosionAnimations
{


      UIImage *image = [UIImage imageNamed: @"Yellow Explosion.png"];

      [bomb setImage:image];   

      [UIView beginAnimations:@"bomb1ExplosionIncrease" context:NULL];

      [UIView setAnimationDuration:0.5];

      [UIView setAnimationDelegate:self];

      bomb.transform = CGAffineTransformMakeScale(3.4, 3.4);

      [UIView commitAnimations];

}
Run Code Online (Sandbox Code Playgroud)

setImage每次都运行正常.但是动画停止了对方法的第二次调用.在控制台中,它记录"动画完成",图像没有任何变化.

这让我相信,某种"自我"认为动画已经完成,并且不会再费心去做了.所以我认为一个新的"分配"可能会让它清醒.

objective-c

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

ARC和"复制"方法

我正在使用SBJson来解析JSON字符串.

像这样:

NSDictionary *dict = received_notification.object;
Run Code Online (Sandbox Code Playgroud)

我应该用吗?

NSString *name  = [[dict valueForKey:@"name"] copy];
Run Code Online (Sandbox Code Playgroud)

要么

NSString *name  = [dict valueForKey:@"name"];
Run Code Online (Sandbox Code Playgroud)

我认为第一种方法复制NSString,之后可以发布dict.

但是对于第二个表达式"name"保留了对dict的引用,它无法释放.

我错了吗?

memory-management objective-c automatic-ref-counting

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

在ios sdk中加载文档目录中的图像

我实现了集合视图,我在其中显示文档目录中的图像.

但是由于图像从文档加载,集合视图不能平滑滚动.

如果图像从主束加载,那么它可以正常工作.

我的代码如下:

UIImageView *img=[[UIImageView alloc]init];
img.image=[UIImage imageWithContentsOfFile:[[arr_images objectAtIndex:indexPath.row]valueForKey:@"Image_path"]];
img.contentMode=UIViewContentModeScaleAspectFit;
cell.backgroundView=img;
Run Code Online (Sandbox Code Playgroud)

我应该使用线程吗?如果是的话,我该怎么做?我怎么解决这个?

iphone multithreading image ios uicollectionview

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