dequeueReusableCellWithIdentifier永远不会返回nil

我在我的UITableView中使用自定义的UITableViewCell,但问题是,调用dequeueReusableCellWithIdentifier时,单元格永远不会为零。 为什么是这样 ? – (void)viewDidLoad { [super viewDidLoad]; UINib *nib = [UINib nibWithNibName:@"PHResultTableViewCell" bundle: nil]; [[self tableView] registerNib:nib forCellReuseIdentifier:@"MyCell"]; } – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { PHResultTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"]; if (cell == nil) { PackageHolidayItem *obj=[[PackageHolidayItem alloc]init]; obj= [totalArray objectAtIndex:indexPath.row]; cell.packageHolidayItem = obj; [cell loadRow]; } return cell; }

警告:UICollectionViewFlowLayoutcaching了索引path'abc'的帧不匹配

这是导致警告的代码: private override func layoutAttributesForItemAtIndexPath(indexPath: NSIndexPath) -> UICollectionViewLayoutAttributes? { let attributes = super.layoutAttributesForItemAtIndexPath(indexPath) let distance = CGRectGetMidX(attributes!.frame) – self.midX; var transform = CATransform3DIdentity; transform = CATransform3DTranslate(transform, -distance, 0, -self.width); attributes!.transform3D = CATransform3DIdentity; return attributes } 控制台还打印: 这可能是因为stream布局“xyz”正在修改由UICollectionViewFlowLayout返回的属性而不复制它们。 我如何解决这个警告?

无法将types'UITableViewCell'的值转换为'(AppName)。(CustomCellName)'

我目前正在尝试使用xCode 6.3 swift 1.2创build自定义表格视图单元格。 出于某种原因在cellforRowAtIndexPath方法,我似乎无法设置我的单元格variables。 代码会编译,但是当这行代码命中时: var cell:MessageCell = tableView.dequeueReusableCellWithIdentifier("messageCell") as! MessageCell 我得到这个错误:无法将types'UITableViewCell'(0x1112f5a18)的值转换为'CampusExchange.MessageCell'(0x10e8318f0)。 以下是我的完整方法:(如果您想知道如何设置消息,我正在使用Parse) func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell:MessageCell = tableView.dequeueReusableCellWithIdentifier("messageCell") as! MessageCell let message = messagesArray[indexPath.row]["Message"] as? String cell.messageOutlet.text = message return cell } 感谢您的任何帮助。 我似乎无法得到这个工作。

iOS7 – 设备唯一标识符

我们的iOS应用程序是为特定的用户。 所以,我们使用设备唯一标识符来识别用户。 这种方法工作正常,直到iOS 6,因为我们每次都获得相同的价值。 NSString *strUniqueIdentifier = [[UIDevice currentDevice] uniqueIdentifier]; 在iOS 7中,上面的方法正在重新调整不同的值,并且我们在用户识别中遇到问题。 iOS 7 apis提供以下备用。 NSUUID *oNSUUID = [[UIDevice currentDevice] identifierForVendor]; [strApplicationUUID setString:[oNSUUID UUIDString]]; 我用“identifierForVendor”replace了“uniqueIdentifier”,并创build了Ad hoc构build。 在iOS 7和iOS 6设备上安装了内置版本。 在iOS 7中,到目前为止,我每次都获得相同的值,但是当我们删除并重新安装应用程序时,iOS 6每次都会给出不同的值。 目前应用程序在App Store上不可用。 所以我不知道这个API是如何工作的应用程序商店构build。 问题:1)对于appstore应用程序,“identifierForVendor”是否每次都为iOS 7返回相同的值? 或者在将来用户删除并重新安装应用程序时可能会更改? 2)是否有任何其他替代方法可用于iOS 7 apis中的“唯一标识符”,它们将为iOS 6和iOS 7返回相同的值? 3)其他build议…

iOS部署目标

如果我将应用程序的部署目标设置为iOS 4.2,那么iOS 3.2(或者低于4.2)的用户是否可以下载和安装该应用程序,并且该应用程序将无法运行或无法运行下载并安装应用程序本身? 谢谢。

苹果Mach-O链接器(id)警告:为MacOSX构build,但链接到为iOS构build的dylib

从过去xCode 4的某个时刻开始抱怨链接器问题: ld:警告:为MacOSX构build,但链接到为iOS构build的dylib:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks//CoreGraphics.framework/CoreGraphics 我已经检查了一切,但仍然没有任何可疑的configuration,它编译和运行。 我唯一看到的是CoreGraphics.framework之前的双斜杠,为什么我不知道。 尝试删除并再次添加库“build设阶段”,没有帮助。

XCode 5 / iOS 7 – 本地化不能在模拟器中工作

我正在关注Ray Wenderlich的关于本地化的教程,但我似乎无法得到它的工作。 我已经把我的项目设置为英语和法语的本地化,我有一个locaziable.strings文件为每个: 法文档有正确的(就Google翻译而言)我的string的法文版本: 我通过调用localizable.strings文件中的正确键来设置string: NSString* strTitle = [NSString stringWithFormat:NSLocalizedString(@"Title", Nil)]; 我有模拟器设置为法语(顺便说一句:每当我做一个语言改变模拟器崩溃)。 但它不是从正确的localizable.strings文件中提取的。 它仍然以英文显示: 难道我做错了什么?

协议操作符为什么必须作为全局函数来实现?

我已经看到了这个Swift Equatable Protocol问题的答案,它提到了如何在全局范围内声明==方法。 如果我不采用Equatable ,我仍然可以声明==来testing我的两个types之间的平等。 // extension Foo: Equatable {} func ==(lhs: Foo, rhs: Foo) -> Bool { return lhs.bar == rhs.bar } struct Foo { let bar:Int } 其实施需要在全球范围内进行宣布的事实,使得它似乎与议定书是偶然的 ,并且与议定书有所不同 ,即使通过了“ Equatable 。 Equatable协议如何超过语法糖,仅仅让我们和编译器安全地知道我们的types实现了协议所需要的方法? 为什么运营商的实施必须在全球范围内宣布,即使对于协议? 这是否由于运营商派遣的不同方式?

iOS上的com.facebook.sdk错误2

我有一个在iOS和Android上运行的Phonegap应用程序。 该应用程序有一个Facebookloginfunction,直到几天前工作。 我们的一些testing者已经报告了“操作无法完成com.facebook.sdk错误2”的错误。 这些testing者的设备各不相同:iPhone 5,iPhone 4s,iPod Touch,iOS 5.1.1和iOS 6.0。 我们使用最新的Facebook SDK和一个Phonegap Facebooklogin插件( https://github.com/davejohnson/phonegap-plugin-facebook-connect/ )。 我已经做了一些研究,发现了这个错误可能发生的原因如下: 我的info.plist文件中的BundleIdentifier和BundleURLName与我的Facebook应用的设置中的Native iOS应用下的Bundle ID不匹配。 该应用程序仍处于沙盒模式 该应用程序在Facebook设置(设备的设置 – > Facebook – >允许这些应用程序使用您的帐户)被禁用。 iOS 6.0不允许同时询问读写权限(不确定是否有这个权限)。 以下是这种情况: BundleIdentifier和BundleURLName匹配。 该应用程序不在沙盒模式。 该应用程序不会出现在每个用户的“允许这些应用程序使用您的帐户” Phonegap插件的build设者表示已经修复了iOS 6.0的权限错误( https://github.com/davejohnson/phonegap-plugin-facebook-connect/pull/216 ) 这是一个非常不一致的错误(在我的情况)。 如果我closures“允许这些应用程序使用您的帐户”(我的应用程序在那里列出)的应用程序,我只能自己重现错误,但我可以通过再次允许应用程序轻松修复错误。 目前大多数testing人员没有这个错误,但是错误仍然存​​在于iPod上(应用程序未在“允许这些应用程序使用您的帐户”中列出)。 有没有人有任何想法,为什么我有这个错误?

将两个audio文件合并为一个目标c

可能重复: 合并iPhone上的audio文件 我试图将2个audio文件合并成一个文件。 例如:file1.mp3 – 它说“我是”。 file2.mp3 – 它说“乔治”。 我想得到一个组合文件file3.mp3,它会说“我是乔治”。 我如何在Objective-C中做到这一点?