下面的代码按预期运行,但编译器一直告诉我:警告:'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) 有人建议我使用这行代码从我的资源文件夹/项目包中调用图像.我也看到它在许多不同的网站教程中使用完全相同.
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实际上是一个应该工作的方法.我可能会在这里失踪什么?
我正在制作一个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) 实现一个函数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)
我几乎是肯定的,我对这一切都错了.
也许有人可以解释财产之间的区别:
在.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) 考虑到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自己更新(可见).
有没有人有想法,为什么没有听到听众?
我正在使用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) 这可能听起来真的很棒,但我已经花了一整天的时间来解决这个问题并且会感激一些帮助.
你看我有一种方法,我在游戏玩法中不止一次打电话.如果我使用[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每次都运行正常.但是动画停止了对方法的第二次调用.在控制台中,它记录"动画完成",图像没有任何变化.
这让我相信,某种"自我"认为动画已经完成,并且不会再费心去做了.所以我认为一个新的"分配"可能会让它清醒.
我正在使用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的引用,它无法释放.
我错了吗?
我实现了集合视图,我在其中显示文档目录中的图像.
但是由于图像从文档加载,集合视图不能平滑滚动.
如果图像从主束加载,那么它可以正常工作.
我的代码如下:
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)
我应该使用线程吗?如果是的话,我该怎么做?我怎么解决这个?