Hatena::ブログ(Diary)

satoru.netの自由帳 このページをアンテナに追加 RSSフィード

180921Friday

[]perlからphpのsession read

いまさらperlつかってるひとなんて化石なんだろうなあとおもいつつーperlだいすき


https://www.h-fj.com/blog/archives/2013/02/27-152952.php

use Data::Dumper

use CGI::Cookie;

use PHP::Serialization qw( unserialize );

my %ck = fetch CGI::Cookie;;

my $data = $memd->get($ck{PHPSESSID}->value);

$data =~ s/^[^\|]+\|//;

my $ref = PHP::Serialization::unserialize($data);

print Dumper($ref);

160110Sunday

swift / JSON取得&リスト表示&タイトルクリックでURLに飛ぶ

import UIKit
import Alamofire

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
    @IBOutlet var table: UITableView!
    var newsDataArray = NSArray();
    func tableView(tableView: UITableView, numberOfRowsInSection section:Int) -> Int{
        return newsDataArray.count
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)->UITableViewCell{
        let cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
        let newsDic = newsDataArray[indexPath.row] as! NSDictionary
        cell.textLabel?.text = newsDic["title"] as? String
        cell.textLabel?.numberOfLines = 3
        cell.detailTextLabel?.text = newsDic["publishedDate"] as? String
        return cell
    }

    func tableView(tableView: UITableView,didSelectRowAtIndexPath indexPath: NSIndexPath){
        let newsDic = newsDataArray[indexPath.row] as! NSDictionary;
        let newsUrl = newsDic["unescapedUrl"] as! String;
        let url = NSURL(string:newsUrl);
        let app = UIApplication.sharedApplication();
        app.openURL(url!);
    }
    
    override func viewDidLoad() {
        table.dataSource = self;
        table.delegate = self;
        super.viewDidLoad()
        getRSS();
    }

    func getRSS(){
        let requestUrl = "https://ajax.googleapis.com/ajax/services/search/news?v=1.0&topic=p&hl=ja&rsz=8";
        Alamofire.request(.GET, requestUrl, parameters: nil).responseJSON {
            response in
            if let json = response.result.value {
                let jsonDic = json as! NSDictionary
                let responseData = jsonDic["responseData"] as! NSDictionary
                self.newsDataArray = responseData["results"] as! NSArray
                self.table.reloadData()
            }
        }
    }

160109Satday

swift / jsonをhttp経由で取得

Download

setting

  • general > embed Binary で[+]で追加。
  • [Alamofile iOS]を選択して追加

code

        let requestUrl = "https://ajax.googleapis.com/ajax/services/search/news?v=1.0&topic=p&hl=ja&rsz=8";

        Alamofire.request(.GET, requestUrl, parameters: nil).responseJSON {
            response in
            if let json = response.result.value {
                print(json)
            }
        }

swift / 永続的に保存できるlocalStrage的なやつ

var cacheKey:String = "dataKey";

let userData = NSUserDefaults.standardUserDefaults();

value:Int = userData.integerForKey(cacheKey);

userData.setInteger(value+1, forKey: cacheKey)

print("value:\(value)");

140214Friday

tableView関連めも

UItableViewでUITableCellの選択時に別ページに移動

1.移動させたいページ同士をstoryboardで結ぶ。(modal)
2.segueにID設定する
3.ViewController.m
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   [self performSegueWithIdentifier:@"設定したsegueのID" sender:self];
}

移動先ページから戻るボタンで元ページに戻る

1.ViewController.m 移動元に関数設置する
//戻る用メソッド
- (IBAction)returnMainView:(UIStoryboardSegue *)segue
{
    ;
}
2.移動先のページから戻る時はstoryboard上からUIButtonとexitを結びつける-
  • exitに関数がでないときはxcodeを再起動させると出る

別のviewcontrollerにパラメーターを渡す

文字列でも配列でもハッシュでも何でも渡せる。

渡したいときは3つのファイルをいじる。

1.ViewController.m
  • importに渡す先のヘッダーを入れる
  • 変数を設定する

#import "detailPage.h"

...

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if ([[segue identifier] isEqualToString:@"toSecondPage"]) {
        
        //遷移先にデータをパラメーターを渡す
        NSIndexPath *indexPath = [_myTableView indexPathForSelectedRow];
        detailPage *vc = [segue destinationViewController];
        
        //NSStringを渡す
        vc.receiveString = items[indexPath.row];

        //NSArrayを渡す
        vc.receiveArray = @[@"a",@"b",@"c"];
        
        //NSDictionaryを渡す
        vc.receiveDict = @{@"key":@"unko",@"key2":@"value2"};

    }
}
2.SecondPage.h

@property NSString *receiveString;
@property NSArray *receiveArray;
@property NSDictionary *receiveDict;

@end

3.SecondPage.m

...

@synthesize receiveString;
@synthesize receiveArray;
@synthesize receiveDict;

...

- (void)viewDidLoad
{
    [super viewDidLoad];

..
    
    NSLog(@"string=[%@]",receiveString);
    NSLog(@"array=[%@]",receiveArray[0]);
    NSLog(@"dictionary=[%@]",receiveDict[@"key"]);

..    
    
    
}


140211Tueday

データ保持用クラス NSUserDefaults

keyを元に呼び出せる便利クラス

アプリが終了しても保持し続けるので、前回の設定を保持したい時などに使う。


- (void) hoge {
 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

 //読み出し 
 if([[defaults stringForKey:@"key"] isEqualToString:@"off"]){
     ...
 }

 //保存
 setDefault(@"key",@"value");

}

- (void)setDefault :(NSString *)key :(NSString *)value{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:value forKey:key];
    [defaults synchronize];
}



資料

http://iphone-tora.sakura.ne.jp/nsuserdefaults.html

©satoru.net
Mail Twitter