Tag: 保留

在数组块枚举中创buildUITableViews会导致崩溃

所以故事就这样:) 我试图阻止枚举NSArray中的对象,并dynamic创build每个UITableViews并将其添加到UIScrollView中。 为了可读性和可重用性,我使用www.objc.io中的Lighter View Controller 。 dataSource被分别为每个UITableView创build。 问题是我一直崩溃 -[NSObject(NSObject) doesNotRecognizeSelector:] 我从堆栈上的post中发现,块枚举中的对象由于速度问题而保留较弱,并且可以确认dataSource实际上是为每个表取消分配的。 我甚至试图用__strong初始化ArrayDataSource,但是没有任何效果。 __strong ArrayDataSource *customdayTableDataSource = [[ArrayDataSource alloc] initWithConfigureCellBlock:configureCell cellIdentifier:DayTableCellIdentifier]; 我在做什么错在块? 你能指点我正确的方向吗? TableViewCellConfigureBlock configureCell = ^(id cell, id object) { [cell configureForObject:object]; }; [NSArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { int tableHorizontalPosition = [[UIScreen mainScreen] bounds].size.width * idx; int tableHeight = [[UIScreen mainScreen] bounds].size.height; […]

是否需要引用一个单例目标-c对象,以便通过IOS应用程序的生命来保存它?

是否需要引用一个单例目标-c对象,以便通过IOS应用程序的生命来保存它? 例如,如果如果AppDelegate创build/实例化了一个单例对象,但没有保留它,这个实例(带有实例variables数据)是否可以在iPhone应用程序中使用? 换句话说,为了确保单例中的数据保持不变,在最初创build的App Delegate中,App Delegate是否需要将它保留到它的一个实例variables中?

当我打电话时如何保留viewController中的uitextfield值?

我有一个主页有我的第一个视图中的3个文本框,当我导航到不同的视图,并返回到我的第一个视图(即我input所有的价值,我移动到下一页)。我希望我的3文本框保留其值我回到我的主页这里我的示例代码: NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *mobile = MobileNum.text; [defaults setObject:mobile forKey:self.MobileNum.text]; NSString *amountText = amount.text; [defaults setObject:amountText forKey:self.amount.text]; [defaults synchronize]; NSString *temp = [defaults objectForKey:self.MobileNum.text]; NSString *temp1 = [defaults objectForKey:self.amount.text]; NSLog(@"%@ %@",temp,temp1);

在从NIB加载之后,IBOutlet实例是(null)

我正在研究一个iPhone应用程序,并获取(null)引用到我的控制器中的IBOutlet字段。 我有一个UIViewController子类被设置为我的XIB文件的所有者。 我有一组连接到控制器的UI元素。 从NIB加载并尝试设置这些UI元素的属性后,我发现它们是(null)。 为了澄清一些代码: ExpandSearchPageController.h: @interface ExpandSearchPageController : UIViewController { IBOutlet UITextView * completeMessageView; } -(void)checkTextField; @property (nonatomic, retain) IBOutlet UITextView * completeMessageView; ExpandSearchPageController.m: @implementation ExpandSearchPageController @synthesize completeMessageView; -(void)checkTextField { NSLog(@"text field: %@",completeMessageView); } ExpandSearchPageController被设置为ExpandSearchPage.xib的文件所有者。 ExpandSearchPage.xib的UITextView连线到completeMessageView。 当我打电话 ExpandSearchPageController * searchExpanderPage = [[ExpandSearchPageController alloc] initWithNibName:@"ExpandSearchPage" bundle:[NSBundle mainBundle]]; [searchExpanderPage checkTextField]; 结果是 "text field: (null)"

带有SearchController的TableView – DEINIT不被调用

我已经添加了一个search栏和search显示控制器从界面生成器到我的应用程序。 我无法正确地取消(dealloc)。 它显示了以下行为(swift2,ios9): 用户不search任何东西,只要从tableView中select一个项目, 调用DEINIT 用户search的东西(或只是在search栏中点击),取消search,从tableView中select项目, 调用DEINIT 用户search的东西(或只是点击search栏),并从tableView中select一个项目, DEINIT不被称为 🙁 如果我在导航控制器中select“返回”而不是select一个项目,则会发生同样的情况。 code removed – refer to COMPLETE CODE at bottom of post. 任何帮助感激! 更新进一步的testing显示,从视图控制器中删除progressHud / loadingHud完全不影响DEINIT没有被调用。 它必须是与tableview或searchcontroller本身有关… 更新2我已经尝试在我的viewWillDissapear调用searchBarCancelButtonClicked()方法,它仍然不释放。 即使如果你点击“取消”,然后离开它不… 更新3更改willDisappear / didDisappear到以下对DEINIT没有影响 – 但不会给出越野车接口问题(感谢Polina)。 我正在努力将任何我能得到释放,但没有运气到目前为止。 override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(true) searchBarCancelButtonClicked(searchController.searchBar) } override func viewDidDisappear(animated: Bool) { print("View did disappear") searchController.searchBar.resignFirstResponder() searchController.searchBar.endEditing(true) searchController.active = […]