小编Nov*_*arg的帖子

在不冻结UI的情况下执行提取

我正在制作一个小型聊天应用.在我的应用程序中,我正在使用NSFetchedResultsController.有2个tableViews,1个用于大厅,1个用于聊天室.问题是每当我进入聊天室时,我必须等待NSFetchedResultsController执行获取并加载所有数据,然后才能开始输入任何内容.我想知道是否可以在后台执行fetch,或者以某种方式让用户在加载最后一条消息之前开始输入.

因此,如果我在viewDidLoad方法中设置该部分,我的UI就会冻结,直到加载所有数据:

NSError *_error;
if (![self.fetchedResultsController performFetch:&_error]) {
    NSLog(@"Unresolved error %@, %@", _error, [_error userInfo]);
}
Run Code Online (Sandbox Code Playgroud)

如果我将该段代码设置为单独的方法,然后在后台的viewDidLoad中调用该方法

[self performSelectorInBackground:@selector(fetchIt) withObject:nil];
Run Code Online (Sandbox Code Playgroud)

tableView只是没有更新,所以我必须回到第一个tableView,然后回来获取任何结果.

谢谢.

任何帮助,将不胜感激

更新

我确实尝试了其他一些方法来做到这一点.

方式1:

-(void)reloadTheTable
{
  [self.tableView reloadData];
}

-(void)fetchIt
{
  NSError *_error;
  if (![self.fetchedResultsController performFetch:&_error]) {
    NSLog(@"Unresolved error %@, %@", _error, [_error userInfo]);
  }
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
  [self performSelectorOnMainThread:@selector(reloadTheTable) withObject:nil waitUntilDone:NO];
  [pool release];
}

- (void)viewDidLoad {
  //some code
  [self performSelectorInBackground:@selector(fetchIt) withObject:nil];
  //some other code
}
Run Code Online (Sandbox Code Playgroud)

结果:tableView不显示任何数据,需要重新打开该视图控制器

方式2:

- (void)viewDidLoad {
  //some code
  dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), …
Run Code Online (Sandbox Code Playgroud)

iphone user-interface core-data nsfetchedresultscontroller ios

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

Markerclusterer根据其中的标记设置标记簇图标

假设我想制作一个网页,显示每个停车位上剩下的大约免费停车位数(由于机密性,我不允许提供我实际在做的任何细节).为此,我使用谷歌地图Markerclusterer.所以对于停留不到5%的停车点,我想要显示一个红色标记,对于5%-25%的停车位,我会显示一个黄色的停车位,对于那些我想要制造超过25%的免费停车位的停车位它绿色.到目前为止,我可以制作这些标记并将它们聚类,但这里是棘手的部分(和问题本身):

如何根据其中的标记创建一个群集图标?

例如:

  • 停车A是绿色的
  • 停车B是红色的
  • 停车C是绿色的
  • 停车D是黄色的

缩小时,我想显示其中所有4个都是红色的群集(最糟糕的是).放大时,我会得到2个簇(A + B和C + D).我希望第一个簇(A + B)为红色,第二个簇(C + D)应为黄色.

到目前为止我做了什么:

var mcOptions = {gridSize: 50, maxZoom: 15, styles: [{
    height: 46,
    url: "///Users/Novarg/Downloads/foundation-5.4.7/img/greenC.png",
    width: 46
  },
  {
    height: 46,
    url: "///Users/Novarg/Downloads/foundation-5.4.7/img/redC.png",
    width: 46
  }]};
  var markers = [];
  for (var i = 0; i < 100; i++) {
    var latLng = new google.maps.LatLng(51 + Math.random(),
      4 + Math.random());
    var marker = new google.maps.Marker({'position': latLng, icon: 'img/greenP.png'});
    markers.push(marker);
  }
  for …
Run Code Online (Sandbox Code Playgroud)

html javascript google-maps google-maps-api-3 markerclusterer

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

在网络上读取身份证

我有兴趣使用身份证阅读器读取身份证(比利时身份证,如果有的话)。

经过一番研究,我发现了这个看起来不错的博客,但它确实需要.NET才能运行。我还发现电子合同允许我们做同样的事情,但它确实需要jboss

但是,我想用 Salesforce 实现它,所以我更喜欢使用 HTML/JS 和任何需要的 JS 库。

是否有任何库/技巧可以用来将微芯片中的数据直接读取到浏览器中?

javascript id-card web reader

5
推荐指数
0
解决办法
1399
查看次数

当UITableView处于编辑模式时,可选择UITableViewCells

标题说明了一切.UITableViewCells当UITableView处于编辑模式时,我需要选择可能的选项.我不认为这里的代码是必要的,但如果它是:

-(void)turnEditingOn {
  [self.tableView setEditing:YES animated:YES];
  if (self.tableView.isEditing)
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(newItem)];
  else
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(turnEditingOn)];
}

- (void)viewDidLoad
{
  [super viewDidLoad];
  self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(turnEditingOn)];
  //the rest of the code is omitted
}
Run Code Online (Sandbox Code Playgroud)

因此,我需要能够在编辑模式下对单元格进行点击,就像编辑警报时的Clock应用程序一样.

谢谢

编辑

忘了提一下:

-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

没有在编辑模式中调用

objective-c uitableview ios

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

NSDate和NSDateComponents返回错误的日期

我知道这个问题被问了一百万次,我找不到解决办法.问题是:我正在修改一个NSDate以返回当月的第一天的日期或下个月的第一天的日期.它似乎工作正常,除了一件事:它给予时间减去2或3小时.

码:

NSCalendar *theCalendar = [NSCalendar currentCalendar];
int comp = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *theComp = [theCalendar components:comp fromDate:date];
[theComp setTimeZone:[NSTimeZone systemTimeZone]];
switch (roundingMode) {
    case FIRST_OF_MONTH:
        [theComp setDay:1];
        return [theCalendar dateFromComponents:theComp];
    case FIRST_OF_NEXT_MONTH:
        [theComp setMonth:theComp.month+1];
        [theComp setDay:1];
        return [theCalendar dateFromComponents:theComp];
}
Run Code Online (Sandbox Code Playgroud)

这是调试器(gdb)输出:

(gdb) po theComp
<NSDateComponents: 0x6e26170>
  TimeZone: Europe/Kiev (EET) offset 7200
  Calendar Year: 2012
  Month: 3
  Day: 1
(gdb) po date
2012-03-12 13:05:22 +0000
(gdb) po [theCalendar dateFromComponents:theComp]
2012-02-29 22:00:00 +0000
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

谢谢.

objective-c nsdate nsdatecomponents ios

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

UITableView不会重新加载

我有更新的问题UITableView.我reloadData在其上调用方法,但cellForRowAtIndexPath不会被调用.码:

//.h
@interface MasterViewController : UIViewController<ELCTextFieldDelegate, UITableViewDelegate, UITableViewDataSource> {
  //some variables
}
@property (nonatomic, retain) IBOutlet UITableView *theTableView;
//other properties

//.m
- (void)viewDidLoad {
  //some code
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}

- (void)keyboardWillHide:(NSNotification *)notification {
  self.theTableView.frame = CGRectMake(0, 0, 320, 480 - 64);
  [self.theTableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)

我连接theTableViewUITableView在厦门国际银行,我还设置它的delegatedataSourceFile's Owner.

我使用ELCTextFieldCell它为我提供了UITableViewCella UILabel和a UITextField …

iphone objective-c uitableview

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