小编mer*_*nix的帖子

xcode:如何在编译/构建阶段将文件保存在"documents"文件夹中(不是通过"运行中的代码")?

我有很多jpeg + png + html文件要添加到我的应用程序中,当然,当我"构建"它时,我的所有资源文件都添加/包含在myApp mainBundle文件夹中.

我希望能够在运行时通过代码修改我的一些资源,但是:

1)我们不能在mainBundle的运行时通过代码"编写"文件

2)我们可以只在"文档"文件夹(或临时,或...)中执行此操作

3)我们可以在运行时通过代码复制"Documents"文件夹中的文件

4)在"文档"中处理后,我们无法删除mainBundle文件

但这意味着我们的应用程序会增加一倍,在大型应用程序中(这是我的情况)这应该是无意义的,我们将在mainBundle中再次使用大量的大文件...

所以我想知道是否有解决这个问题的方法(只是我认为这是无意义的吗?)通过xCode或其他类似解决方案直接在"构建"阶段的"Documents"文件夹中添加文件. ..

PS

一个可能是用户第一次通过服务器/互联网直接在"Documents"文件夹中下载所有文件,所以我的应用程序不会很难通过iTunesStore下载,但当然这将花费大量时间最终用户的第一次,当然,它可能不被广泛接受......

iphone xcode objective-c mainbundle

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

MKMapView框架在MKMapType声明中没有浮雕谷歌地图类型,但它的工作原理

我试图使用MKMapView,我想显示/更改谷歌提供的地图类型.我们都知道,在网站上我们可以使用普通道路类型,混合类型,卫星/照片类型,最近也可以使用浮雕类型.

这是我想要使用的最后一个.将它插入UIWebView + HTML +标准google API中没有问题,但由于种种原因,我现在更喜欢将它与MKMapView一起使用.但是......惊喜:

"似乎"我们不能使用tat类型的地图......

阅读Apple MKMapView类参考:

MKMapType

要显示的地图类型.

enum {
   MKMapTypeStandard,
   MKMapTypeSatellite,
   MKMapTypeHybrid
};
Run Code Online (Sandbox Code Playgroud)

其中0表示MKMapTypeStandard

1是MKMapTypeSatellite

当然2是MKMapTypeHybrid ......

所以我们正式被允许使用那种3种地图,而不是浮雕类型,它似乎在苹果框架中根本不存在......

但我很好奇,所以我尝试了这个:

myMKMapView.mapType = 3; // a number not officially declared
Run Code Online (Sandbox Code Playgroud)

并且它工作得很好,苹果framweork要求谷歌正确的地图类型然后它在我的视图中显示它,在模拟器和iPhone设备.

所以,这是我的问题:

即使苹果文件中没有"正式"声明,你认为我还能使用它吗?Apple会拒绝我的应用程序以这种方式使用它的框架吗?

提前致谢,

卢卡

iphone google-maps objective-c mapkit

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

M1:在带有 M1 芯片和 Big Sur 的 Mac 上使用模拟器 iOS 13 或更早版本和 Xcode 12.3 崩溃

我有这个奇怪的问题:

  • Xcode 12.3
  • macOS 11.1 大苏尔
  • iOS 模拟器 < 14

我添加了建议的“排除架构” arm64以让我的项目在模拟器 iOS 14 上运行

但是如果我在模拟器上使用旧的 iOS 似乎可以工作,在编译阶段没有警告或错误

这一切似乎都有效,但是如果我运行一些没问题的代码行(它们在以前的 mac 中运行,并且仍然在 iOS 14 模拟器上运行),它只会崩溃

例如:

NSData *encodedString = [@"a" dataUsingEncoding:NSUTF8StringEncoding];
NSAttributedString *htmlString = [[NSAttributedString alloc] initWithData:encodedString options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:nil error:nil];
Run Code Online (Sandbox Code Playgroud)

代码是正确的,没有任何问题,没有警告,否则我注意到其他方法也有类似的崩溃

有人遇到过类似的崩溃吗?有人解决了吗?

PS,如果我删除“排除”arm64,我将无法在 iOS 14 上运行,但无论如何仍然在 iOS 13 上崩溃

xcode objective-c ios arm64 apple-m1

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

cellForRowAtIndexPath中的ReusableCellWithIdentifier问题

在我的应用程序中,我有一个imageView和一个UILabel.对于ImageView,我已经为它分配了asynch Image并且它工作正常,但是当我滚动表时,第一行和最后一行的标签重叠.

这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    productObject=[appDelegate.productArray objectAtIndex:indexPath.row];
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    UILabel *nameLabel;
    if (cell == nil) 
    {

        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero     reuseIdentifier:CellIdentifier] autorelease];
        cell.selectionStyle = UITableViewCellSelectionStyleBlue;

    }   

    else 
    {

        AsyncImageView* oldImage = (AsyncImageView*)[cell.contentView viewWithTag:999];
        [oldImage removeFromSuperview];
    }

    CGRect nameLabelRect = CGRectMake(70,80,150,15);
    nameLabel = [[UILabel alloc] initWithFrame:nameLabelRect];    
    nameLabel.text = [NSString stringWithFormat:@"%@",productObject.productname];
    nameLabel.textAlignment = UITextAlignmentCenter;
    nameLabel.lineBreakMode = UILineBreakModeCharacterWrap;
    nameLabel.font = [UIFont boldSystemFontOfSize:15];
    nameLabel.backgroundColor = [UIColor clearColor];
    [cell.contentView addSubview: nameLabel]; …
Run Code Online (Sandbox Code Playgroud)

iphone uitableview

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

NSFileSize实体是什么?

我有一个方法,它给我一个目录的fileSize.我在文档中查找但是没有声明NSFileSize具有哪个实体.

iphone xcode ios

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