0

我有一个包含 UITextView 的应用程序。用户按下按钮,操作会更改 UITextView 上的文本。该应用程序功能齐全,现在在 AppStore 中,它是使用 iOS 4.2 构建的。

无需更改任何代码。在测试为 iOS 6 构建的应用程序的新版本时。当安装在模拟器或新设备中时,应用程序不会在 UITextView 中显示任何文本。UITextView 是空白的……但是当使用 NSLog 时,它会在日志中写入 UITextView 中有文本。

我注意到如果设备有以前版本的应用程序,它在 AppStore 中。然后我将新版本的应用程序编译到该设备上,应用程序的功能与预期相同,并且 UITextView 会在按下按钮时更新。

在我的 .h 文件中

#import <UIKit/UIKit.h>


@interface TimeSheetViewController : UIViewController <UITextViewDelegate>
{

}

    @property(nonatomic, retain) IBOutlet UITextView *logTextView;

在我的 .m 文件中

@synthesize logTextView;

    -(IBAction)buttonAction
    {   
        logTextView.text = [NSString stringWithFormat:@"%@ \n New words go here...", logTextView.text];
NSLog(@"%@", logTextView.text);
    }

即使尝试从 Interface Builder 的 UITextView 设置文本也无法显示,除非在新版本编译到设备上时应用程序已经存在

4

3 回答 3

0

我在 viewDidLoad 方法中使用了以下代码:

int fontSizeA = [(sizeLabel.text)intValue];
logTextView2.font=[UIFont fontWithName:@"Arial" size:fontSizeA];

我遇到的问题是 sizeLabel 在 Interface Builder 中断开连接,而 viewDidLoad 方法确实在使用此代码...

int fontSizeA = [(@"sizeLabel")intValue];
logTextView2.font=[UIFont fontWithName:@"Arial" size:fontSizeA];

这看起来 UITextView 中没有文本。

于 2013-05-25T04:05:17.783 回答
0

尝试使用 textview 的 setText 方法。

[logTextView setText:@" New words go here..."];

如果它不起作用,请检查您是否已将 textView 设置为不可编辑,即禁用用户交互或 xib 文件中的类似内容(如果有)。

于 2013-05-15T04:20:11.543 回答
0

这只是一半的答案或更准确地说不是解决方案......根据

技术说明 TN2285:测试 iOS 应用更新

警告:请勿使用 Xcode 安装或运行应用程序更新以进行质量保证测试。

为了加快开发周期,Xcode 只会将更改的文件推送到它运行的应用程序中,而不是从现有的应用程序包中删除文件。这使得构建速度显着加快。但这意味着使用 Xcode 在较旧的旧版本上安装应用程序可以使用原本没有的旧文件进行“frankenbuild”。这可能会导致测试期间出现问题并掩盖错误。

此外,使用 Xcode 运行将掩盖在升级启动时间过长时可能发生的“看门狗崩溃”。

我相信正在发生的事情是,当我从 Xcode 编译我的新版本到 AppStore 版本时,一些文件被遗留在它上面......使它像预期的那样工作。

但是由于从 Xcode 编译的新版本中缺少该文件,因此从未发布的应用程序的未来版本中安装的任何新应用程序都缺少该特定文件并且无法正常运行。

我不太确定该文件是什么,但我打算更多地研究它或构建一个新项目并将旧代码复制并粘贴到其中。

在多种设备和 iOS 版本上测试您的应用

于 2013-05-18T03:52:49.393 回答