小编Leg*_*10n的帖子

MPMoviePlayerController拒绝通过iOS4中的扬声器播放声音

我正在使用MPMoviePlayerController播放一些视频,我得到图像,但是一旦我尝试在没有耳机的情况下播放声音,音量控制就会随着动画而消失.如果我插入耳机或某些外部扬声器,音量控制将返回动画.

该应用程序已经通过iPad iOS 3.2进行了测试并且运行良好,也可以使用iPod touch 2G iOS 3.0并且工作正常,但问题在于iPhone 4和iOS 4.1.

iphone audio

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

为什么要取消分配此对象?

我正在开发一个iPhone应用程序,我正试图将视图推入导航控制器,我之前做了很多次,但是,我对这个特定的应用程序有一些问题.我有一个表视图,当用户选择一行时,新视图被推入控制器:

DataWrapper *row=[[self.rows objectAtIndex:[indexPath section]] objectAtIndex:[indexPath row]];
DataViewController *nextController=[[DataViewController alloc] initWithNibName:@"Data" bundle:[NSBundle mainBundle]];
[nextController setInfo:row];
[nextController setRow:[indexPath row]];
[nextController setParent:self];
[self.navigationController pushViewController:nextController animated:YES];
[nextController release];
Run Code Online (Sandbox Code Playgroud)

它很顺利,直到用户点击后退按钮,我得到一个例外,并使用NSZombieEnabled得到这个:

-[DataViewController respondsToSelector:]: message sent to deallocated instance 0x4637a00
Run Code Online (Sandbox Code Playgroud)

所以我试图删除[nextController release],事实上它工作,但为什么???? 我分配了nextController,所以我应该发布它,对吧?如果有类似这样的东西,我觉得发布这个应用程序是不对的,我觉得它会失败.请让我知道你的想法.

iphone memory-management exception objective-c

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

使用MPMoviePlayerController和锁定屏幕继续播放声音?

当您观看视频MPMoviePlayerController并且用户按下顶部按钮以锁定屏幕时,应用程序将进入睡眠状态,视频中的声音也会进入休眠状态.

有没有办法阻止锁定停止声音?如果没有,有没有办法拦截锁定,创建一个"自定义锁定",以节省一些电池,但继续播放视频?

iphone audio objective-c core-audio mpmovieplayercontroller

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

在使用sqlite3_exec执行查询后,我应该使用sqlite3_finalize吗?

我在我的iPhone应用程序中使用Sqlite3,我显然是随机获得一些不需要的回滚,但是我不知道这是否与我没有最终确定语句的事实有关sqlite3_finalize,因为到目前为止据我所知sqlite3_exec,照顾它.

另外我发现了一些sqlite3_prepare_v2我没有最终确定的SELECT ,所以我知道我必须完成这些,但是我应该对它们做同样的事情sqlite3_exec吗?

我的陈述的一个例子是:

NSString *query=@"UPDATE books SET title='newName' WHERE id='21';";
if ((result=sqlite3_open([database UTF8String], &_database))==SQLITE_OK) {
    result=sqlite3_exec(_database, [query UTF8String],NULL,NULL,&errorMsg);
    if (result!=SQLITE_OK) {
        printf("\n%s",errorMsg);
        sqlite3_free(errorMsg);
    }
    sqlite3_close(_database);
}
Run Code Online (Sandbox Code Playgroud)

sqlite3_finalize(result)关闭数据库之前我应该吗?

sqlite iphone objective-c

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

我应该发布这个属性吗?

我是一个客观的新手,我在内存管理方面遇到了一些问题,我已经阅读了苹果的内存管理政策,但是我需要在这里澄清一下,我猜这很简单,但我会想问你我是不对的:

鉴于此属性:

@interface Test : NSObject {
  NSArray *property1;
}
@property (nonatomic,retain) NSArray* property1;
@end

...

//And its implementation:
@implementation Test
@synthetize property1;
-(id) init {
  if (self=[super init]) {
    self.property1=[[[NSArray alloc] initWithCapacity:5] autorelease];
  }
  return self;
}
-(void) dealloc {
  [super dealloc];
  [property1 release];
}
Run Code Online (Sandbox Code Playgroud)

@结束

在init方法中向分配的对象发出一个Autorelease消息是正确的吗?我在apple的文档中这样做,说开发者应该释放每个分配的对象,然后,我认为,alloc sets retain count为1,然后属性(非原子,保留)加1,所以retain == 2,然后自动释放子1,当调用dealloc方法时,property1被释放并保留count == 0,我是对的吗?

memory-management objective-c

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