[iOS]リソースファイルの取得方法

リソースファイルのパスを取得するためには下記のように実装する。

--------------------------------------------------------------------------------
?リソースファイルの取得方法
--------------------------------------------------------------------------------
ファイル名「Test.db」のパスを取得する。
NSString *fileName = @"Test.db";
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSString *filePath = [resourcePath stringByAppendingPathComponent:fileName];

ただしローカライズした際に上記の方法ではデフォルトのファイルしか取得できない。
そのため下記の方法で取得した方が良さげ。

NSBundle *mainBundle = [NSBundle mainBundle]; // pathForResourceには拡張子を含めない。 NSString *filePath = [mainBundle pathForResource:@"Test" ofType:@"db"];

ちなみにサブフォルダを作成した場合は下記のようにinDirectoryにサブフォルダ名を指定する。

?12 NSBundle *mainBundle = [NSBundle mainBundle]; NSString *filePath = [mainBundle pathForResource:@"Test" ofType:@"db" inDirectory:@"DB"];

【リソースフォルダにサブフォルダを作る方法】
リソースファイルをプロジェクトにコピーするときに「Create folder references for any added folders」を選択する。
プロジェクトエクスプローラー上でフォルダが青くなっていればサブフォルダの作成に成功している。

--------------------------------------------------------------------------------
?プロジェクトの全リソースファイルを取得する方法
--------------------------------------------------------------------------------
 
NSError *error;
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
NSArray *directory = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:resourcePath error:&error];
for (NSString *str in directory) {     NSLog(@"FileName:%@",str);
}

时间: 2024-07-29 16:24:36

[iOS]リソースファイルの取得方法的相关文章

IOS上传图片方法类

IOS上传图片方法类 iPhone开发中遇到上传图片问题,找到多资料,最终封装了一个类,请大家指点,代码如下 // // RequestPostUploadHelper.h // demodes // // Created by 张浩 on 13-5-8. // Copyright (c) 2013年 张浩. All rights reserved. // #import <Foundation/Foundation.h> @interface RequestPostUploadHelper

iOS 处理方法中的可变參数

## iOS 处理方法中的可变參数 近期写了一个自己定义的对话框的demo,想模仿系统的UIAlertView的实现方式.对处理可变參数的时候,遇到了小问题,于是谷歌了一下.写下了处理问题的方法.记录下来,以备后需. 代码实现 - (instancetype)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelBu

iOS 处理方法中的可变参数

## iOS 处理方法中的可变参数 最近写了一个自定义的对话框的demo,想模仿系统的UIAlertView的实现方式,对处理可变参数的时候,遇到了小问题,于是谷歌了一下,写下了处理问题的方法,记录下来,以备后需. 代码实现 - (instancetype)initWithTitle:(NSString *)title message:(NSString *)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelBut

iOS开发-方法调用在运行时的过程

方法调用在运行时的过程 如果用实例对象调用实例方法,会到实例的isa指针指向的对象(也就是类对象)操作. 如果调用的是类方法,就会到类对象的isa指针指向的对象(也就是元类对象)中操作. 首先,在相应操作的对象中的缓存方法列表中找调用的方法,如果找到,转向相应实现并执行. 如果没找到,在相应操作的对象中的方法列表中找调用的方法,如果找到,转向相应实现执行 如果没找到,去父类指针所指向的对象中执行1,2. 以此类推,如果一直到根类还没找到,转向拦截调用. 如果没有重写拦截调用的方法,程序报错. 以

Unity调用原生(iOS, Android)方法

Unity调用原生程序方法,定义接口(doTestSelector): using UnityEngine; using System.Collections; using System.Runtime.InteropServices; public class TestScript : MonoBehaviour { // This tells unity to look up the function FooPluginFunction // inside the static binary

IOS之方法混写(swizzling.)

OC中的混写(swizzling)是指透明地把一个方法换成另外一个.简明的说就是在运行时替换方法.利用方法混写可以改变那些没有源代码的对象(包括系统对象)的行为. 方法混写的代码看起来相对比较直观的,举个例子说明一下,之前做本地化翻译的时候就有用到 swizzling 方法.直接去swizze方法 awakeFromNib 然后替换成自己的方法实现以实现本地化翻译.详细可以看这篇文章:IOS本地化应用程序. 主要用到的代码也就这两句: +(void)load { // Autoload : sw

luajit 64位 for cocos2dx 编译ios解决方法

最近luajit发布了64位beta版,由于appstore上线必须是64位的应用,而且我的游戏项目用到lua脚本,所以必须要用到64位的luajit来编译lua脚本. 方法如下: 在luajit官网下载luajit源码: http://luajit.org 解压后,需要通过在luajit的文件夹上层目录,打开终端编译,编译方法如下命令: LUAJIT=./luajit-2.1.0-beta2 DEVDIR=`xcode-select -print-path`/Platforms IOSVER=

IOS学习 - 方法选择器Selector的相关使用

问题的由来 Objective-C是一门动态的语言,只要有可能,Objective-C总会使用动态的方式来解决问题,比如它尽可能的将编译和连接要做的事推迟到运行时,所以它需要一个强大的运行时系统(runtime)来执行编译好的代码.runtime的角色类似于Objective-C语言的操作系统,是Objective-C的灵魂.Objective-C的很多特性都是基于这个强大的运行时的,是十分值得去学习理解的. 动态语言Objective-C很常见的一个消息发送语句(比较准确的说是消息发送,在不混

iOS摇动方法实现

    iOS对于摇动进行了封装,直接可以使用MotionEvent来实现,代码如文档中实例, 首先设置view为firstResponder - (BOOL)canBecomeFirstResponder { //默认是NO,所以得重写此方法,设成YES return YES; } - (void)viewDidAppear:(BOOL)animated { [self becomeFirstResponder]; } 然后实现下列方法://很像TouchEvent事件 - (void)mot

ios 对方法的注释规范

一些小东西在此记录一下,以后会断断续续的记录下来其他的小知识,有时间可以翻来看看.1------关于ios注释规范 /** * @brief 带字符串参数的方法. * * @param valueOne 值. * @param valueTwo 值. * @return 返回value. * * @exception NSException 可能抛出的异常. * * @see someMethod * @see someMethodByInt: * @warning 警告: appledoc中显