无法从数据库加载网址

时间:2014-03-02 18:51:47

标签: mysql ios url uiwebview xcode5

这段代码允许我从我的mysql lite数据库中提取图像名称,没有任何问题。

- (void)viewDidLoad

{

    [super viewDidLoad];

    UIImage * image = [UIImage imageNamed: self.munsterData.image];

    self.imageView.image = image;

}

我还想从我的数据库中提取特定的URL并使用以下代码将它们加载到UIWebView中:

    - (void)viewDidLoad
{
    [super viewDidLoad];

    NSURL * myUrl = [[NSURL alloc] initWithString: self.munsterData.twitter];

    NSURLRequest * myNSURLRequest = [[NSURLRequest alloc]initWithURL:myUrl];

    [twitterView loadRequest:myNSURLRequest];

}

我做错了什么?当我选择url链接时,我的应用程序立即崩溃。如果我更换:

NSURL * myUrl = [[NSURL alloc] initWithString: self.munsterData.twitter];

NSURL * myUrl = [[NSURL alloc] initWithString: @"http://www.google.com"];

Google网站加载成功。但由于某种原因,我无法从我的数据库中获取url来加载。

munsterData:

@property (nonatomic, retain) NSMutableArray * munsterData;

Twitter的:

const char * twitterStr = sqlite3_column_text(statement, 7);
NSString * twitter = [NSString stringWithUTF8String:twitterStr];
p.twitter = twitter;

2 个答案:

答案 0 :(得分:0)

把这个放在[super viewDidLoad]之后;并提供反馈。

NSLog(@"%@", self.munsterData.twitter);
if ([self.munsterData.twitter isKindOfClass:[NSString class]]) {
    NSLog(@"is string");
}

答案 1 :(得分:0)

您的代码非常适合在UIWebview中加载任何网址。好的开始方式。但是在使用代码示例在UIWebview中加载url之前,请确保以下几点:

- (void)viewDidLoad
{
   [super viewDidLoad];
   NSURL * myUrl = [[NSURL alloc] initWithString: self.munsterData.twitter];
   NSURLRequest * myNSURLRequest = [[NSURLRequest alloc]initWithURL:myUrl];
   [twitterView loadRequest:myNSURLRequest];
}
  1. 调试代码并检查“self.munsterData.twitter”是否正在获取url。编程的好方法是检查字符串是否有值,而不是在字符串上执行另一个操作。

  2. 检查您的字符串是否包含“self.munsterData.twitter”中的“http://”或“https://”。如果不可用,请使用带有NSString Class格式方法的字符串添加。

  3. 为了更好的编程,请使用以下方法转换为真实网址的方法:

    - NSString *url_String = [self.munsterData.twitter  strgingByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];