小编Ed *_*rty的帖子

UITableView dataSource必须从tableView返回一个单元格:cellForRowAtIndexPath:Exception

我实际上没有看到我的错误:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  static NSString *CellIdentifier = @"Cell";

  FriendTableViewCell *cell = (FriendTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  if (cell == nil) {
      cell = [[[FriendTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
      [[NSBundle mainBundle] loadNibNamed:@"FriendTableViewCell" owner:self options:nil];
      cell = friendCell;
  }
  cell.lblNickname.text =  @"Tester";
  return cell;
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我检查了两次..但没有看到错误.

谢谢你的帮助!

iphone uitableview

43
推荐指数
2
解决办法
6万
查看次数

-performSelector:withObject:afterDelay:work?

我目前正在假设-performSelector:withObject:afterDelay:不使用线程,但安排事件在以后的日期在当前线程上触发.它是否正确?

进一步来说:

- (void) methodCalledByButtonClick {
  for (id obj in array) {
    [self doSomethingWithObj:obj];
  }
}

static BOOL isBad = NO;
- (void) doSomethingWithObj:(id)obj {
  if (isBad) {
    return;
  }
  if ([obj isBad]) {
    isBad = YES;
    [self performSelector:@selector(resetIsBad) withObject:nil afterDelay:0.1];
    return;
  }
  //Do something with obj
}

- (void) resetIsBad {
  isBad = NO;
}
Run Code Online (Sandbox Code Playgroud)

假设我们在主线程上运行,即使需要任意长的时间来完成,它是否保证-resetIsBad-methodCalledByButtonClick返回之后才会被调用-methodCalledByButtonClick

iphone cocoa-touch objective-c

32
推荐指数
2
解决办法
4万
查看次数

UITableViewCell如何知道自己的indexPath?

标准的分组UITableView样式允许UITableViewCell在每个部分的顶部和底部绘制带圆角的s.这是如何完成的?细胞如何在其部分内知道自己的位置,以及它如何知道何时更改其圆形边缘?

我想制作自己的圆形单元格,并且我有要使用的图像,但不知道何时显示哪个图像

注意:我已经知道UITableView是如何工作的,我知道如何使用它.我只是认为,因为UITableView能够在正确的位置自动绘制圆角,所以我也应该能够,无需向我的数据源或委托添加任何内容.

iphone uitableview

26
推荐指数
3
解决办法
3万
查看次数

有没有办法在iPhone上通过触摸?

我有几个UIButton用于在主区域中点击时设置当前操作的s.我还想让用户直接从按钮拖动到主区域并采取相同的动作; 实质上,touchesBegan和touchesMoved应该在触摸UIButtons时传递到主视图,但也应该发送按钮按下动作.

现在,我在内部修改控制.拖动出口调用内部部分设置控件,然后调用触摸开始部分启动主区域触摸操作.

但是,此时,touchesMoved和touchesEnded显然没有被调用,因为触摸起源于UIButton.

有没有办法半忽略触摸所以它们被传递到主区域,但也允许我先设置控件?

iphone cocoa-touch

23
推荐指数
3
解决办法
2万
查看次数

我应该如何在基于servlet的应用程序中连接到JDBC数据库/数据源?

我有一个外部MySQL服务器,设置和工作正常.我在Eclipse中创建了一个数据库连接,可以在Data Source Explorer选项卡中查看数据库.

现在,我有一个需要访问该数据库的servlet.我该怎么做?有没有办法引用在数据源资源管理器中创建的数据库连接,还是我必须两次定义所有内容?

另外,打开连接的最佳方法是什么?我已经mysql-connector-java-5.1.11-bin.jar包含了该文件,并且我发现了两种有效的方法:

MysqlDataSource d = new MysqlDataSource();
d.setUser("user");
d.setPassword("pass");
d.setServerName("hostname.com");
d.setDatabaseName("db");
Connection c = d.getConnection();
Run Code Online (Sandbox Code Playgroud)

Connection c = DriverManager.getConnection("jdbc:mysql://hostname.com/db","user","pass");
Run Code Online (Sandbox Code Playgroud)

两者都不是最佳的,因为首先,它们都使用硬编码的字符串.这是一个Java EE Web应用程序项目,是否有一个放置连接数据的好地方?或者有没有办法放弃所有这些并只使用数据源资源管理器中的连接?

tomcat servlets datasource jdbc

19
推荐指数
1
解决办法
7万
查看次数

循环通过宏Varargs值

如果我定义一些宏:

#define foo(args...) ({/*do something*/})
Run Code Online (Sandbox Code Playgroud)

有没有办法实际循环args而不是传递给另一个函数?就像是

#define foo(args...) \
        { \
           for (int i = 0; i < sizeof(args); ++i) { \
             /*do something with args[i]*/ \
           } \
         }
Run Code Online (Sandbox Code Playgroud)

c macros variadic-functions

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

UIScrollView缩放后如何重置?

我有一个图形被绘制在一个UIScrollView.它是一个UIView使用自定义子类CATiledLayer作为其层的大型.

当我放大和缩小时UIScrollView,我希望图形动态调整大小,就像我从图表返回时一样viewForZoomingInScrollView.但是,Graph在新的缩放级别重绘自己,我想将变换比例重置为1x1,以便下次用户缩放时,变换从当前视图开始.如果我将转换重置为Identity in scrollViewDidEndZooming,它可以在模拟器中工作,但会EXC_BAD_ACCSES在设备上抛出.

这甚至都没有在模拟器上完全解决问题,因为下次用户放大时,变换将自身重置为它所处的任何缩放级别,因此看起来,如果我缩放到2x,例如,它突然达到4倍.当我完成缩放时,它以正确的比例结束,但实际的缩放行为看起来很糟糕.

首先:如何让图形在缩放后以1x1的标准比例重绘自己,如何在整个过程中进行平滑缩放?

编辑:新发现错误似乎是" [CALayer retainCount]: message sent to deallocated instance"

我自己永远不会释放任何图层.在此之前,我甚至没有删除任何观点或任何内容.在缩放和旋转时抛出此错误.如果我在旋转之前删除对象并在之后重新添加它,它不会抛出异常.这不是缩放的选项.

iphone cocoa-touch zooming uiscrollview ios

16
推荐指数
4
解决办法
5万
查看次数

如何在iPhone上录制AMR音频格式?

录音机不需要未压缩的线性PCM音频.压缩AMR会很好.用于录制音频的iPhone框架非常简单,但我找到的用于设置音频格式(来自Apple)的唯一示例使用LinearPCM.我已经尝试了各种其他值的组合,但似乎无法获得任何工作.

有人有任何实际记录的代码AMR吗?

编辑: AMR格式是设置数据类型的选项之一,但其他选项(数据包大小,帧大小等)似乎不匹配,无论我将它们设置为什么.

编辑:这是我对PCM版本的看法:

/*
 If we want to use AMR instead of PCM:
 AMR Format:
 Sampling Frequency: 8 kHz/13-bit (160 samples for 20 ms frames), filtered to 200-3400 Hz
 eight source codecs :  12.2, 1.2, 7.95, 7.40, 6.70, 5.90, 5.15, 4.75 kbit/s
 generated frame length: 244, 204,  159,  148,  134,  118,  103,   95 bits per frame
 */
format->mFormatID = kAudioFormatLinearPCM;
format->mSampleRate = 8000.0;    //8 kHz
format->mFramesPerPacket = 1;    //1 frame per packet
format->mChannelsPerFrame …
Run Code Online (Sandbox Code Playgroud)

iphone core-audio audio-recording amr ios

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

如何删除以前版本的Xcode

当iPhone OS的3.2 beta首次出现时,Xcode for 3.2必须与3.1.2的版本并排安装.我在/ Developer中安装了新版本(3.2)并将3.1.2移动到/Xcode3.1.2.现在我想摆脱旧版本,只使用新版本,因为我们现在可以做到这一点.

我在/Xcode3.1.2/Library/uninstall-devtools和uninstall-developer-folder上运行了卸载工具,但该目录仍然存在并且还有很多东西,最多可添加5 GB.在这一点上,我是否安全删除文件夹,如果我想完全摆脱它仍然使用/ Developer文件夹?

(大约8 GB,它有更多的内容,但我不确定这是因为它更大还是因为旧的版本是8 GB我运行卸载工具之前)?

iphone xcode

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

如何在SQLite中使用唯一ID插入重复行?

这看起来很简单:我想在SQLite表中复制一行:

INSERT INTO table SELECT * FROM table WHERE rowId=5;
Run Code Online (Sandbox Code Playgroud)

如果没有明确的唯一列声明,则该语句将起作用,但声明了表的第一列rowID INTEGER NOT NULL PRIMARY KEY.是否有任何方法可以创建一个简单的语句,如上所述,在不知道表的模式的情况下工作(除了第一列)?

sql sqlite

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