我需要了解除MVC以外的iPhone开发中使用的devise模式。 请使用代码片段回答任何示例说明或示例。 谢谢。
我正在尝试更新UICollectionView的单个单元格,具体UICollectionView ,我只是试图更新由cell.imageView引爆的特定单元格中的图像。 [self.collectionView reloadData]不是一个真正的select,因为它使整个集合视图闪光。 [self.collectionView beginUpdates]不是[self.collectionView beginUpdates]的东西。 我知道我可以使用: [self.collectionView performBatchUpdates:^{ //do something } completion:nil]; 我不完全确定要在完成块中放置什么来更新某个单元格的imageView 。 这一切都是在didSelectItemAtIndexPath内部完成的。我也没有使用NSFetchedResultsController 。 有任何想法吗?
我想检查一个特定的string是否由空格组成。 它可以是任意数量的空格,包括零。 什么是确定的最好方法?
当我打电话给本地程序时,我得到这个警告。 我的代码是这样的: -(void)nextLetter { // NSLog(@"%s", __FUNCTION__); currentLetter ++; if(currentLetter > (letters.count – 1)) { currentLetter = 0; } self.fetchLetter; } 我得到了self.fetchLetter语句的警告。 那个例程看起来像这样: – (void)fetchLetter { // NSLog(@"%s", __FUNCTION__); NSString *wantedLetter = [[letters objectAtIndex: currentLetter] objectForKey: @"langLetter"]; NSString *wantedUpperCase = [[letters objectAtIndex: currentLetter] objectForKey: @"upperCase"]; ….. } 我宁愿修复警告消息,有没有更好的方式来写这个? 谢谢!
我正在开发一个iPhone应用程序。 我是一个全职的Java开发人员,我习惯于使用Eclipse,在那里我可以放置一个断点,并停止进程。 然后,我可以input任何我想要的expression式,Eclipse将使用该过程中的值来评估它。 有没有办法做到这一点在Xcode? 我希望能够在断点处停下来,然后input一些代码来评估它。 GDB控制台将让我做po ( 打印对象 ),但它是非常有限的。 任何帮助?
我是iOS新手。 我目前正在使用Objective-C和Swift学习iOS。 在Objective-C中附加一个string,我使用下面的代码: NSString *string1 = @"This is"; NSString *string2 = @"Swift Language"; NSString *appendString=[NSString stringWithFormat:@"%@ %@",string1,string2]; NSLog(@"APPEND STRING:%@",appendString); 任何人都请指导我。
首先,我将BOOL值转换为NSNumber,以便将其放入NSUserDefaults中。 后来我想从NSUserDefaults中检索BOOL值,但显然我得到了NSNumber而不是BOOL。 我的问题是? 如何从NSNumber转换回BOOL? 如何比较NSNumber和BOOL值。 目前我有: if (someNSNumberValue == [NSNumber numberWithBool:NO]) { do something } 有什么更好的方法来比较? 谢谢!
我一直在试图解决这个崩溃近一个星期。 应用程序崩溃,没有任何exception或堆栈跟踪。 在僵尸模式下运行仪器时,应用程序不会以任何方式崩溃。 我有一个方法在不同的线程上被调用。 修复崩溃的解决scheme正在取代 [self.mutableArray removeAllObjects]; 同 dispatch_async(dispatch_get_main_queue(), ^{ [self.searchResult removeAllObjects]; }); 我认为这可能是一个计时问题,所以我试图同步它,但它仍然崩溃: @synchronized(self) { [self.searchResult removeAllObjects]; } 这是代码 – (void)populateItems { // Cancel if already exists [self.searchThread cancel]; self.searchThread = [[NSThread alloc] initWithTarget:self selector:@selector(populateItemsinBackground) object:nil]; [self.searchThread start]; } – (void)populateItemsinBackground { @autoreleasepool { if ([[NSThread currentThread] isCancelled]) [NSThread exit]; [self.mutableArray removeAllObjects]; // Populate […]
可能重复: 如何判断UIViewController的视图是否可见 我正在开发一个应用程序,处理来自networking的传入数据的不断stream,并提供了许多不同的UIViews供用户查看该数据。 当某些模型数据根据来自networking的inputstream更新时,我访问关联的UIViewController或UITableViewController,并对其进行-setNeedsDisplay(对于UIViewController)或-reloadData(对于UITableViewController)。 有没有办法来检查给定的UIView是否正在显示(不只是被加载),以便我只做–setNeedsDisplay或 – 如果用户正在查看该UIView -reloadData? 看起来用户目前没有看到调用-setNeedsDisplay或reloadData是浪费处理能力,对电池寿命不利。 当用户最终切换到先前更新的视图时,在-viewWillAppear上执行-setNeedsDisplay或reloadData将更有意义。 谢谢
如何使用NSLog打印NSData对象的内容: -(void) post:(NSString*) msg to:(NSString*) link{ NSString *myRequestString = [NSString stringWithFormat:@"message=%@", msg]; NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: link]]; [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"]; [request setHTTPMethod: @"POST"]; [request setHTTPBody: myRequestData]; NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil]; NSLog("%@", *returnData); //doesn't work } […]