目前我正在故事板中创建一个原型单元格,并将此单元格用作节标题.在tableView:viewForHeaderInSection:方法中,我将单元格出列并返回它.
我的节标题单元格中有一个UITextField和一个UIButton.当我点击文本字段时会出现键盘,但只要焦点从文本字段移开,整个部分标题就会消失.当我直接将单元格作为节标题视图返回时会发生这种情况,但如果我将新分配的UIView作为节标题视图返回到哪个单元格作为子视图添加,那么除了自动调整掩码外,一切正常.
为什么标题消失了?
我不确定这里最好的东西是什么.
-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
static NSString *CellIdentifier = @"SectionHeader";
SettingsTableViewCell *sectionHeaderCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//return sectionHeaderCell; // returning cell directly, section header disappears when focus is moved away from text field.
UIView * headerView = [[UIView alloc] initWithFrame:sectionHeaderCell.frame];
[headerView addSubView:sectionHeaderCell];
return sectionHeaderCell;//header view never disappears, but auto resizing masks do not work. Need to know how to set autoresizing masks to headerView so that it resizes correctly.
}
Run Code Online (Sandbox Code Playgroud) 我正在加密下载的文件并将其保存在app的文档目录中.
要阅读它们,您必须解密这些文件并暂时存储一些文件.
我担心的是:
1.如果我将它们存储在doc目录中的时间正在使用它们,那个时间窗口就可以使用像iExplorer这样的工具来获取这些文件.
2.我的想法是将它们存储在内存中以供使用时间,并在使用后冲洗保险库. 此选项适用于小文件,但对于大文件说50 MB或100 MB的视频,我担心应用程序将收到内存警告,结果将突然终止.
我想知道这样做的最佳方法.
我正在创建单例实例,如下所示:
+(MySingleton*)sharedInstance {
static MySingleton sharedObject = nil;
static dispatch_once_t predicate = 0;
dispatch_once(&predicate, ^{
sharedObject = [[MySingleton alloc] init];
});
return sharedObject;
}
Run Code Online (Sandbox Code Playgroud)
sharedObject自动解除分配的可能性有哪些?
sharedObject在应用程序终止之前,我怎么能确定它会保留在内存中?
我有以下代码片段:
-(void) doSomething
{
__block NSMutableArray *objArray = [[NSMutableArray alloc] initWithCapacity:0];
[self performOperationWithBlock:^(void)
{
//adding objects to objArray
.
.
//operation with objArray finished
// 1. should objArray be released here?
}];
//2. should objArray be released here?
}
Run Code Online (Sandbox Code Playgroud)
我应该自动发布objArray吗?
我正在构建一个 Cocoa Touch 框架,它使用自定义 NSError 对象将错误传达给调用者。我需要声明一个定义自定义错误代码的枚举。我去了这个Apple 文档,其中列出了如下所示的 NSURLErrorDomain 错误代码:
enum {
NSURLErrorUnknown = -1,
NSURLErrorCancelled = -999,
NSURLErrorBadURL = -1000,
NSURLErrorTimedOut = -1001,
NSURLErrorUnsupportedURL = -1002,
NSURLErrorUnsupportedURL = -1002,
NSURLErrorCannotConnectToHost = -1004,
NSURLErrorDataLengthExceedsMaximum = -1103,
NSURLErrorNetworkConnectionLost = -1005,
NSURLErrorDNSLookupFailed = -1006,
NSURLErrorHTTPTooManyRedirects = -1007,
NSURLErrorResourceUnavailable = -1008,
NSURLErrorNotConnectedToInternet = -1009,
NSURLErrorRedirectToNonExistentLocation = -1010,
NSURLErrorBadServerResponse = -1011,
NSURLErrorUserCancelledAuthentication = -1012,
NSURLErrorUserAuthenticationRequired = -1013,
NSURLErrorZeroByteResource = -1014,
NSURLErrorCannotDecodeRawData = -1015,
NSURLErrorCannotDecodeContentData = -1016,
NSURLErrorCannotParseResponse = -1017,
NSURLErrorInternationalRoamingOff = -1018,
NSURLErrorCallIsActive …Run Code Online (Sandbox Code Playgroud) 我有一个委托函数,要求UIActivityIndicatorViewStyle从委托。
@protocol StatusViewCustomizationDelegate <NSObject>
@optional
-(UIActivityIndicatorViewStyle)activityIndicatorStyle;
@end
Run Code Online (Sandbox Code Playgroud)
在私有函数中,我检查委托是否响应此选择器,如果响应,则调用该方法。下面是代码:
-(void)configureView
{
UIActivityIndicatorViewStyle activityIndicatorStyleFromDelegate;
if ([self.delegate respondsToSelector:@selector(activityIndicatorViewStyle)])
{
activityIndicatorStyleFromDelegate = [self.delegate activityIndicatorStyle];
}
}
Run Code Online (Sandbox Code Playgroud)
检查我在activityIndicatorStyleFromDelegate变量中收到的枚举值是有效的UIActivityIndicatorViewStyle枚举值的正确方法是什么?
编辑:
UIActivityIndicatorViewStyle是iOS定义的枚举。
typedef NS_ENUM(NSInteger, UIActivityIndicatorViewStyle) {
UIActivityIndicatorViewStyleWhiteLarge,
UIActivityIndicatorViewStyleWhite,
UIActivityIndicatorViewStyleGray,
};
Run Code Online (Sandbox Code Playgroud) 在通知处理程序方法中,我正在设置一个BOOL属性(isNotificationCarryingObject),如下所示:
-(void)notificationReceived:(NSNotification *)notification
{
//set flag depending upon if notification carries an object
//I tried following:
//1.
self.isNotificationCarryingObject = notification.object != nil;
//result: self.isNotificationCarryingObject = nil
//2.
self.isNotificationCarryingObject = notification.object != nil ? YES : NO;
//result: self.isNotificationCarryingObject = nil
//3.
self.isNotificationCarryingObject = YES;
//result: self.isNotificationCarryingObject = YES ?????
}
Run Code Online (Sandbox Code Playgroud)
使用1.和2.我无法设置标志但使用3.它设置为YES,我不明白为什么?据我所知,所有3个陈述都应该有效.
isNotificationCarryingObject属性定义为:
@property (nonatomic, assign) BOOL isNotificationCarryingObject;
Run Code Online (Sandbox Code Playgroud)
通知处理程序在内部呈现视图控制器.在其-viewWillDisappear方法中显示视图控制器发布通知,该方法通过呈现视图控制器来接收.