小编Mar*_*don的帖子

符合协议的类作为Swift中的函数参数

在Objective-C中,可以将符合协议的类指定为方法参数.例如,我可以有一个只允许UIViewController符合的方法UITableViewDataSource:

- (void)foo:(UIViewController<UITableViewDataSource> *)vc;
Run Code Online (Sandbox Code Playgroud)

我无法在Swift中找到一种方法(也许它还不可能).您可以使用指定多个协议func foo(obj: protocol<P1, P2>),但是如何要求对象也是特定类?

swift

88
推荐指数
4
解决办法
2万
查看次数

在Cocoa中重命名文件?

如何重命名文件,将文件保存在同一目录中?

我有一个包含文件完整路径的字符串,以及一个包含新文件名(没有路径)的字符串,例如:

NSString *old_filepath = @"/Volumes/blah/myfilewithrubbishname.avi";
NSString *new_filename = @"My Correctly Named File.avi";
Run Code Online (Sandbox Code Playgroud)

我知道NSFileManager的movePath:toPath:handler:方法,但是我无法研究如何构造新文件的路径..

基本上我正在寻找相当于以下Python代码:

>>> import os
>>> old_filepath = "/Volumes/blah/myfilewithrubbishname.avi"
>>> new_filename = "My Correctly Named File.avi"
>>> dirname = os.path.split(old_filepath)[0]
>>> new_filepath = os.path.join(dirname, new_filename)
>>> print new_filepath
/Volumes/blah/My Correctly Named File.avi
>>> os.rename(old_filepath, new_filepath)
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c file-management nsfilemanager

24
推荐指数
3
解决办法
2万
查看次数

UIWebView在第二个pdf加载请求时崩溃

我有一个UIWebView,我用来显示几个小PDF.用户从表中选择新闻文章,然后在同一屏幕上的UIWebView中加载文章(PDF).第一次加载总是很好.然后我选择的下一个项目(无论哪一个)崩溃应用程序.

这就是我加载每篇文章的方式:

NSString *filePath = [[NSBundle mainBundle] pathForResource:articleFileName ofType:@"pdf"];
[articleView stopLoading];
[articleView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]];
Run Code Online (Sandbox Code Playgroud)

崩溃发生在loadRequest行之后.
崩溃没有提供错误信息.以外:

所有异常{} 0x3629f000

Catchpoint 3(抛出异常).(gdb)

它只是崩溃到main().我已在调试器中验证它在每个请求上使用了正确的文件路径.

我有NSZombies正在运行,我为所有异常设置了断点.

pdf iphone uiwebview ipad

16
推荐指数
2
解决办法
3466
查看次数

删除双精度小数点后的字符

如何删除小数点后的所有字符.

而不是7.3456,我只想7.

这就是我到目前为止用小数位数来获取数字的方法.

[NSString stringWithFormat:@" %f : %f",(audioPlayer.currentTime),(audioPlayer.duration) ];
Run Code Online (Sandbox Code Playgroud)

非常感谢,-Code

iphone objective-c ios

14
推荐指数
2
解决办法
2万
查看次数

尝试在实例方法中NSLog NSNumber ivar

我正在开发一个跟踪不同歌曲的控制台应用程序.我正在努力让歌曲课程首先开始,并试图将已经为歌曲持续时间分配的nsnumber记录到nslog语句中:

//
//  Song.h
//  MusicCollection.15.9   
//
//  Created by Nicholas Iannone on 1/11/10.
   //  Copyright 2010 __MyCompanyName__. All rights reserved.
   //

   #import <Foundation/Foundation.h>


@interface Song : NSObject {

NSString *songTitle;
NSString *songArtist;
NSString *songAlbum;
NSNumber *SongDuration; 
}
@property (nonatomic, retain) NSString *songTitle, *songArtist, *songAlbum;
@property (nonatomic, retain) NSNumber *SongDuration;

-(id) init;


-(void) printSong;



@end


//
//  Song.m
//  MusicCollection.15.9    
//
//  Created by Nicholas Iannone on 1/11/10.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import "Song.h"


@implementation Song …
Run Code Online (Sandbox Code Playgroud)

objective-c nslog nsnumber

12
推荐指数
1
解决办法
3万
查看次数

核心数据:在实体中找不到Keypath"objectID"

我正在使用NSFetchedResultsController谓词来加载Documents我的应用程序中的列表.我想加载Documents除当前活动的所有之外的所有内容.

我使用Rentzsch的MOGenerator创建一个_Document类,然后我将所有自定义代码放在Document子类中._Document生成一个objectID类型的属性DocumentID.

在创建控制器的类中,我设置了控制器的currentDocID属性:

controller.currentDocID = self.document.objectID;
Run Code Online (Sandbox Code Playgroud)

在控制器本身,我懒得加载fetchedResultsController,如下所示:

- (NSFetchedResultsController *)fetchedResultsController {
    if (fetchedResultsController != nil) {
        return fetchedResultsController;
    }

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Document" inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(objectID != %@)", self.currentDocID];
    [fetchRequest setPredicate:predicate];

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateModified" ascending:NO];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    [fetchRequest setSortDescriptors:sortDescriptors];

    NSFetchedResultsController …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa core-data objective-c nsfetchedresultscontroller

12
推荐指数
1
解决办法
1万
查看次数

从photolibrary访问特定相册中的照片

使用uiimagepicker时,是否有任何方法可以指定哪个用户创建的相册应该从中挑选图像?Ill explain.Suppose用户在ipad中创建了两张专辑.让他们被命名为"朋友"和"学生".Is有没有办法指定哪些相册应该从哪些相册进行访问?或者如何知道所选图像所属相册的名称?

可以通过alsset方法完成吗?我想要做的是使用他们的名字访问特定同步相册中的照片.它甚至可能.我的意思是iphone使用自己的命名约定还是保留原始图像名称?

iphone ios4 ios

7
推荐指数
1
解决办法
2189
查看次数

iPhone 2.2.1到3.0过渡最佳实践

Apple现在要求应用程序开发人员提交针对2.2.1但也针对3.0构建的应用程序.我(我想大多数小型/兼职开发人员)只有一部iPhone,而且由于升级到3.0是不可逆转的,我想了解一下在过渡期间最小化风险的最佳做法是什么.

我知道在两种操作系统上进行完全回归测试没有万无一失的方法,但任何关于如何最大限度地减少回归的想法都会有所帮助.

这是Apple的确切文字:

今年夏天,数以百万计的iPhone和iPod touch客户将转向iPhone OS 3.0.从今天开始,所有提交给App Store的内容都将在最新的iPhone OS 3.0测试版中进行审核.如果您的应用提交与iPhone OS 3.0不兼容,则不会获得批准.

App Store中的现有应用程序应该已经在iPhone OS 3.0上运行而无需修改,但您应该使用iPhone OS 3.0测试现有应用程序,以确保没有兼容性问题.在iPhone OS 3.0可供客户使用后,任何与iPhone OS 3.0不兼容的应用程序都可能会从App Store中删除.

iphone cocoa-touch app-store

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

Outlook从电子邮件中删除URL哈希

我们的应用会生成一封电子邮件,其中包含带有哈希片段的链接

  • 当Outlook 2010用户单击HTML链接(在<a>标记内)时,URL将被打开,但神秘地排除了哈希片段.
  • 如果用户单击纯URL(Outlook转换为可单击的链接),则会正确打开完整的URL.

以下是我们的Rails应用程序中的相关代码,如果有帮助:

mail(from: @message.from, to: @message.to, cc: @message.cc, bcc: @message.bcc, subject: @message.subject) do |format|
  format.html { render text: @message.body_text }
end
Run Code Online (Sandbox Code Playgroud)

电子邮件消息(截断;使用Twitter URL代替我们的应用程序URL,遵循类似的模式):

Subject: Hello
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta content='text/html; charset=utf-8' http-equiv='content-type'>
    <title>title</title>
  </head>
  <body>
    <table id='message_body_template'>
      <tr>
        <td>
          <p><a href="http://twitter.com/#!/cnn" title="" target="">Click here</a> 
             to learn more.</p>
          <p>Plain text link: http://twitter.com/#!/cnn</p>
        </td>
      </tr>
    </table>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Click here打开Twitter主页,而纯文本"链接"打开CNN的Twitter页面.有谁能解释为什么?

email outlook outlook-2010

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

Eclipse:构建并符合不同的JRE版本

有没有办法使用一个版本的JRE构建我的应用程序,但我的源符合另一个版本?

我想使用1.6在本地调试我的应用程序,因为OS X的1.6比1.4.2好得多,但由于向后兼容性原因,我们实际上使用1.4.2.

java eclipse

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

开源Ruby项目 - 从哪里开始?

我是编程世界的新手(大约一年),并在过去的一年里在Rails,Ruby,JavaScript方面做了一些开发.在这段时间里,我发现它"真的"让我很高兴能够针对具有挑战性的问题进行编程,而现在我"真的"愿意回馈开源社区,感谢我过去一年所拥有的一切.

因此,我正在寻找有趣的开源Ruby项目 - 任何帮助/建议/指针将深表感谢!

为了一个自由和更美好的世界!

ruby open-source contribute

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

是否有适用于Python的独立Eclipse插件,如PyDev for Python?

我可以安装PyDev for Eclipse,并且没有任何供应商预配置,可以使用相当不错的Python IDE.但令人惊讶的是,我找不到类似于Ruby的独立IDE插件!同样支持PyDev的公司,Aptana,提供了一种名为"RadRails"的东西,但我找不到单独安装它的方法 - 仅作为"Aptana Studio 3 Addin插件",而这个"工作室"不仅包括Ruby - 还包括PyDev ,PHP和许多预配置专注于Web开发.

我错过了什么?为什么我可以安装PyDev并为python安装调试器/完成,但对于Ruby来说,这会导致Eclipse膨胀"Web透视图","Web框架集成"等等?

ruby eclipse eclipse-plugin

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

在普通样式表视图上设置UITableViewCell背景颜色?

我正在构建一个带有搜索栏的普通样式表视图,而我在Apple的表视图中无法复制"装订线"的外观(当拖动表格视图时).

联系人截图http://img200.imageshack.us/img200/2633/picture5m.png

如果我设置表格视图的背景颜色,排水沟看起来很好,但我的单元格使用该颜色作为背景颜色.

我已经尝试设置单元格和单元格的contentView的背景颜色tableView:cellForRowAtIndexPath:,但它稍后会被覆盖.我也尝试创建一个空视图并将其设置为单元格的backgroundView和contentView的子视图,但只有边缘为白色.

我能想到两种解决方案:

  • 将我的UITableViewController子类转换为UIViewController,并在表视图后面插入一个空白视图.
  • 创建一个不允许覆盖backgroundColor的UITableViewCell子类.

这两种解决方案都需要相当多的工作.有没有更简单的方法?

更新:第一个解决方案不起作用.我必须将表格视图的背景颜色设置为clearColor,以便将装订线更改为视图的颜色.但是,当我这样做时,我得到的结果与在表视图上设置backgroundColor相同.

iphone cocoa-touch objective-c uitableview

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