Swift

Swift:NSArrayの挙動と不思議な出来事

Swiftから呼び出したObj.Cのコードの中で不思議な挙動が起きました。

1. まず、NSArrayがObj.Cのコードの中で動いているかというと、次のメソッドでフォルダ内のファイル一覧を取れているのでOKだと考えられます。

NSArray *ttArray = [fileManager contentsOfDirectoryAtPath:path error:&error];

2. しかし、arrayByAddingObject:でファイルパスをSwift側の配列に入れようとすると、できません。常数でもダメです。

[Mesa.trTreeSavedPath arrayByAddingObject:@”123″]);

3. これ以上考えても答えが出そうもないので、filepathをNSArrayの配列に入れる箇所だけをSwift側のメソッドにして呼び出したらうまくいきました。何の制限があるのでしょうね?#import <Cocoa/Cocoa.h> を付け加えたり、Swift側の型を変えたりしたのですが、何ひとつわかりませんでした。

一応、これでFileNodeの主要部分を抜け出せました。やっとデバッグに入れます。

➡️と思いきや、やはりまずいことがわかりました。メソッドの引数か何かで引き継がないとダメなようですね。

Categories: Swift, 技術