我一直在努力在Swift中创建一个UIAlertView,但由于某些原因我无法正确获取该声明,因为我收到此错误:
找不到接受提供的参数的'init'的重载
这是我写的方式:
let button2Alert: UIAlertView = UIAlertView(title: "Title", message: "message",
delegate: self, cancelButtonTitle: "OK", otherButtonTitles: nil)
Run Code Online (Sandbox Code Playgroud)
然后打电话给我我正在使用:
button2Alert.show()
Run Code Online (Sandbox Code Playgroud)
截至目前它正在崩溃,我似乎无法使语法正确.
我的UITableView在每个部分都有自定义的UIView标头.我只需要刷新标题而不是该部分中的其他内容.我已经尝试了UITableView,即使它应该也没有返回任何东西.无论如何我能做到这一点吗?
编辑:基于新建议的代码
我也给了它一个镜头,它在该方法中调用/更新UIView,但是这些更改不会在视觉上传播到屏幕上.
for (int i = 0; i < self.objects.count; i++) {
UIView *headerView = [self tableView:self.tableView viewForHeaderInSection:i];
[headerView setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud) 我正在使用CloudKit作为我的iOS应用程序的服务器后端.我用它来存放一些相对静态的数据以及一些图像(CKAsset).当我花时间从公共数据库中实际获取这些资产时,我遇到了一个问题.它们以极慢的速度加载.
我的用例是将图像加载到集合视图内的每个单元格中.图像的大小仅为200kb,但获取过程平均需要2.2秒才能完成下载并在单元格中设置图像.为了比较,我使用类似大小的库存图像的URL并使用NSURLSession加载它们.每个图像加载仅需0.18 - 0.25秒.
我尝试了多种不同的方式从CK下载图像:直接获取记录,查询和操作查询.所有这些都有类似的结果.在为单元格设置图像之前,我还将调度回完成块中的主队列.
我的数据库设置为具有包含多个数据字段的主对象.然后,我为照片设置了一个向后的参考样式系统,其中每张照片只有一个主要对象的引用.这样我就可以按需加载照片而不会影响主要数据.
它看起来像这样:
主要对象:
title: String, startDate: Date
照片对象:
owner: String(reference to primary object), image: Asset
以下是我尝试直接获取其中一张照片的示例请求:
let publicDb = CKContainer.defaultContainer().publicCloudDatabase
let configRecordId = CKRecordID(recordName: "e783f542-ec0f-46j4-9e99-b3e3ez505adf")
publicDb.fetchRecordWithID(configRecordId) { (record, error) -> Void in
dispatch_async(dispatch_get_main_queue()) {
guard let photoRecord = record else { return }
guard let asset = photoRecord["image"] as? CKAsset else { return }
guard let photo = NSData(contentsOfURL: asset.fileURL) else { return }
let image = UIImage(data: photo)!
cell.cardImageView.image = image
}
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚为什么这些图像下载需要这么长时间,但如果我无法让它们在合理的时间内加载,那真的是非常明显的. …
我有一系列嵌套对象,我需要通过NSCoding协议,以便我可以将顶级对象保存到NSUserDefaults.
这是对象的结构:
'讲师'课
'班级'班级
'学生'课
我需要将一个Instructor实例保存到NSUserDefaults或该应用程序的文档.正如您所看到的,Instructor对象持有一个数组,然后该数组将保存一个类的实例.该类对象持有学生的实例.
NSCoding协议是递归的吗?我的意思是,如果我将NSCoding协议添加到每个类,我可以保存一个Instructor对象,它会递归编码包含的对象?
在解码时它会以相同的方式工作吗?我可以解码一个教师类,它会递归解码所包含的对象,因为它们也符合NSCoding协议?
我该如何设置呢?
我一次在屏幕上有多个水平滚动的集合视图.他们都充满了图像.所有这些图像都是通过Parse api在后台加载的.我正在运行Instrument的分配和匿名VM:ImageIO_JPEG_DATA类占用了大部分内存.应用程序中的所有内存大约等于40,然后此类别超过55,这使得总数大约为100.该类别永远不会下降,只是保持一致.我可以做些什么来从我的集合视图中的图像中释放这些内存?
这是我的集合视图的代码:
.m为我的集合视图控制器
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"CollectionViewCell" forIndexPath:indexPath];
if (cell) {
[cell.loadingImageIndicator setHidden:NO];
[cell.loadingImageIndicator startAnimating];
id photo = [self.collectionViewPhotos objectAtIndex:indexPath.item];
if ([photo isKindOfClass:[PFObject class]]) {
PFObject *photoObject = (PFObject *)photo;
PFFile *imageFile = [photoObject objectForKey:kPhotoPictureKey];
[cell.cellImage setFile:imageFile];
[cell.cellImage loadInBackground:^(UIImage *image, NSError *error) {
[cell.cellImage setContentMode:UIViewContentModeScaleAspectFill];
[cell.loadingImageIndicator stopAnimating];
[cell.loadingImageIndicator setHidden:YES];
}];
} else if ([photo isKindOfClass:[UIImage class]]) {
[cell.cellImage setImage:photo];
[cell.cellImage setContentMode:UIViewContentModeScaleAspectFill];
}
}
return cell;
}
Run Code Online (Sandbox Code Playgroud)
.m for CollectionViewCell
- (void)prepareForReuse …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我在UINavigationController中嵌入了一个UITabBarController.问题是UINavigationController将该标签栏视为单个视图控制器,即使其中有4个标签.我需要为导航栏标题中显示的4个选项卡中的每个选项卡添加不同的标题标题.对于这4个视图,在子类上使用self.title什么都不做.它只是在导航栏中显示相同的标题,因为就像我说的那样,UINavigationController将整个标签栏控制器视为单个视图.
如何为标签栏控制器内的每个视图分别设置标题?
我有这个应用程序加载器警告,我不知道它来自哪里.我的应用程序中有facebook和parse sdk.我看过这篇文章.但是,它并没有帮助我,因为我的问题显然是带有一个名为changeState的东西.在我为我的应用编写的代码中的任何地方都没有调用它.我也不使用facebook sdk,我需要在app中使用解析sdk.我该如何解决这个问题?
我正在尝试使用Cocoapods为我的iOS Xcode项目设置安装.
当我到达需要编辑Podfile的位置时,它不起作用.我尝试在正确的目录中执行命令编辑Podfile,但我得到:
-bash: edit: command not found
Run Code Online (Sandbox Code Playgroud)
我不确定该做什么,并且执行该行对于让cocoapods正常工作非常重要.
我已经尝试重启终端和我的电脑也没有运气.
我有一个UIViewController带UIView内的容器.我在屏幕上显示广告时会调整该容器的大小,以说明广告在屏幕上占用的差异.问题是视图会调整大小,然后立即更改回来.我现在尝试了多件事但没有成功.
我已经努力在viewDidLoad方法中调整容器视图的大小,但它没有做任何事情.我也试过设置self.view.autoresizesSubviews = NO;我的目标是让视图以与我的广告动画到屏幕上的方法相同的方式设置尺寸更改动画.不管我做什么,尺寸变化都不会停留.
我用来设置框架的代码:
CGRect rectFrame = CGRectMake(self.tableViewController.frame.origin.x,
self.tableViewController.frame.origin.y,
self.tableViewController.frame.size.width,
self.tableViewController.frame.size.height - 300);
self.tableViewController.frame = rectFrame;
Run Code Online (Sandbox Code Playgroud) 我有一个UITabBarController,其中有4个标签。这些标签中的每个标签都是单独的UIViewController。我在这4个VC的每一个上都有一个对象,这些对象使用NSNotification来按某个对象时执行操作。4个VC都以相同的方式响应通知,因为它是每个页面上的相似对象。当按下此对象时,它将在当前视图控制器上显示一个视图。问题是,如果我现在移至其他3个选项卡中的任何一个,则该视图也位于其VC上。这是因为当在任何VC上按下通知时,所有4个选项卡上的通知都会得到响应。我需要它仅响应用户当前使用的VC,而不响应选项卡栏中的其他任何用户。
有没有办法使它正常工作?也许是一个阈值,您可以设置通知在被调用后可以执行其选择器的次数?这样,我可以将其设置为1,并且在任何给定时间(如果该通知被称为选择器)只能被调用1次。
我正在使用的对象实现类型要求我使用NSNotification,因此无法更改交互方式。
编辑:
此viewDidLoad方法位于我的选项卡栏中4个VC的顶级VC上。它们全部4个都直接使用它或从中继承。
- (void) viewDidLoad
{
...
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didSelectItemFromCollectionView:) name:@"didSelectItemFromCollectionView" object:nil];
}
Run Code Online (Sandbox Code Playgroud)
动作处理程序:
- (void) didSelectItemFromCollectionView:(NSNotification *)notification
{
NSDictionary *cellData = [notification object];
if (cellData)
{
NewVC *pushToVC = [self.storyboard instantiateViewControllerWithIdentifier:@"PushToVC"];
[self.navigationController pushViewController:pushToVC animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud)
4个VC中的每一个都是a,UITableViewController并且具有带有可按下对象的单元格。此NSNotificationCenter操作使操作得以执行。
我正在尝试将Parse.com崩溃报告添加到我的应用程序中,但遇到了一个我似乎找不到修复的问题.他们的文档说明您应该使用以下脚本设置运行脚本:
export PATH=/usr/local/bin:$PATH
cd (path to working directory i.e. - /Users/Username/Documents/ParseProject/parse)
parse symbols "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它需要一个明确的项目目录来cd.当使用git并尝试在另一台计算机上运行相同的脚本时,这会导致明显的问题.
我尝试将cd更改为几个不同的选项:
cd ${PROJECT_DIR}
cd "$PROJECT_DIR"
cd ./ParseProject/parse
cd ./parse
Run Code Online (Sandbox Code Playgroud)
如何让它工作,以便它可以在不同的计算机上运行?
我创建了一个xib设置为自定义UITableViewCell类的文件.这个xib很简单,里面只有一个UILabel,约束将它绑定到superview.我正在利用本教程来实现动态单元格高度.一切都应该工作,但通过使用xib我添加的所有视图不会添加为内容视图的子视图,而是单元格本身.这是一个问题autolayout.动态调整大小取决于使用单元格的contentView来确定所需的高度.
如何向xib添加视图,该视图将是单元格的子视图contentView而不是单元格本身?
ios ×12
objective-c ×7
iphone ×3
swift ×2
uitableview ×2
cloudkit ×1
cocoa-touch ×1
cocoapods ×1
memory ×1
nscoding ×1
terminal ×1
uialertview ×1
uiview ×1
xcode ×1
xcode6 ×1